水电工888 发表于 2017-2-15 07:18:36

Weblogic与Tuxedo的通信

HI ALL,
      打扰了, 不知哪位大虾用过Tuxedo技术.最近项目里面需要通过Webgloic8.1里面的WTC去连接远程的Tuxedo8.1服务里面的计费接口.我现在的位置是处于weblogic端.本地网关访问点是:tdom01,监听地址是://132.232.115.188:3070.远程Tuxedo8.1里面提供了一个GET_OWE_BANK的服务,Tuxedo的网关访问点是:BANK_TEST_DOMAIN,其监听地址是://132.232.19.105:5438. Tuxedo那边已经将本地信息在tdomain配置文件中配置好.根据<Tuxedo 系统经典>里面的实例,我的Weblogic中的WTC配置信息如下
<WTCServer Name="MyWTCServer" Targets="myserver">
      <WTCLocalTuxDom AccessPoint="tdom01" AccessPointId="tdom01"
            ConnectionPolicy="ON_STARTUP"
            NWAddr="//132.232.115.188:3070" Name="WTCLocalTuxDom-1111629491418"/>
      <WTCRemoteTuxDom AccessPoint="BANK_TEST_DOMAIN"
            AccessPointId="BANK_TEST_DOMAIN"
            ConnectionPolicy="ON_STARTUP" LocalAccessPoint="tdom01"
            NWAddr="//132.232.19.105:5438" Name="WTCRemoteTuxDom-1055574870891"/>
      <WTCExport EJBName="wtcservice" LocalAccessPoint="tdom01"
            Name="WTCExport-1111629542315" ResourceName="GET_OWE_BANK"/>
      <WTCImport LocalAccessPoint="tdom01"
            Name="WTCImport-1111634013932"
            RemoteAccessPointList="BANK_TEST_DOMAIN" ResourceName="GET_OWE_BANK"/>
    </WTCServer>
我在Weblogic端调用的java代码如下:
public static void getOwnBank() throws TPException,Ferror {
      Context ctx;
      TuxedoConnectionFactory tcf;
      TuxedoConnection myTux;
      Reply myRtn;
      Usysfl32Tim f1 = new Usysfl32Tim();
      TypedFML32 buffer = new TypedFML32(f1);
      buffer.Fchg(Usysfl32Tim.AREA_CODE,0,"0512");
      buffer.Fchg(Usysfl32Tim.ACC_NBR,0,"66878301");
      buffer.Fchg(Usysfl32Tim.GET_FLAG,0, Integer.valueOf("0"));
      buffer.Fchg(Usysfl32Tim.STAFF_ID,0, Integer.valueOf("103055"));
      System.out.println("call...");
      try{
            ctx=new InitialContext();
            tcf=(TuxedoConnectionFactory) ctx.lookup("tuxedo.services.TuxedoConnection");
      }catch (NamingException e){
            throw new TPException(TPException.TPENOENT,"Could not get tuxedoConnectionFactory:"+e);
      }
      myTux=tcf.getTuxedoConnection();
      System.out.println("about to call tpcall");
      try{
            myRtn=myTux.tpcall("GET_OWE_BANK",buffer,0) ;   //调用这句的时候就报错
      }catch (TPReplyException re){
            throw re;
      }catch (TPException te){
            throw te;
      }catch (Exception ee){
            throw new TPException(TPException.TPESYSTEM,"Exception:"+ee);
      }
      System.out.println("call sucessful");
      myRtn.getReplyBuffer();
    }
但是老是报错,报错信息如下:
TPENOENT(6):0:0:TPED_MINVAL(0):QMNONE(0):0:No local or remote domain available for GET_OWE_BANK
at weblogic.wtc.gwt.TuxedoConnection.getImport(TuxedoConnection.java:388)
at weblogic.wtc.gwt.TuxedoConnection.tpcall(TuxedoConnection.java:1357)
不知道是我这边weblogic配置的不正确,还是Tuxedo那边提供的访问点或是网关有误.根据提示信息, 感觉是远程的TDOMAIN没有GET_OWE_BANK服务,但是Tuxedo那边的域里面是含有这个服务的.

非常感谢!
页: [1]
查看完整版本: Weblogic与Tuxedo的通信