将应用程序部署到IBM Liberty Profile中时执行CICS请求时出错

时间:2019-06-27 08:24:54

标签: websphere-liberty

如果我(在本地)将其部署到WAS中,那么我的应用程序可以完美运行。但是,如果将其部署到版本为pwa6470_27sr2fp10-20141218_02(SR2 FP10)的IBM J9 VM中的Liberty Profile(WebSphere Application Server 8.5.5.8/wlp-1.0.11.cl50820151201-1942)中,则会得到以下异常,它们连接到CICS服务。 ) :

com.ibm.connector2.cics.CICSUserInputException@a71e6144
[invalidProperties=<null>,errorCode=<null>,linkedException=<null>,
detailMessage=CTG9628E  InteractionSpec passed to execute() not of type ECIInteractionSpec,
cause=com.ibm.connector2.cics.CICSUserInputException@a71e6144,stackTrace=<null>,
suppressedExceptions=[]]

但是IteractionSpec是ECIInteractionSpec的一个实例: exception debug 这是我的server.xml,值得:

        <server description="new server">
        <featureManager>
            <feature>jsp-2.2</feature>
            <feature>jpa-2.0</feature>
            <feature>jaxrs-1.1</feature>
            <feature>cdi-1.0</feature>
            <feature>beanValidation-1.0</feature>
            <feature>ejbLite-3.1</feature>
            <feature>json-1.0</feature>
            <feature>apiDiscovery-1.0</feature>
            <feature>managedBeans-1.0</feature>
            <feature>jca-1.6</feature>
            <feature>jndi-1.0</feature>
            <feature>javaMail-1.5</feature>
            <feature>jaxws-2.2</feature>
            <feature>localConnector-1.0</feature>
            <feature>jms-1.1</feature>
            <feature>servlet-3.1</feature>
        </featureManager>

        <variable name="SHARED_LIB_ROOT" value="C:\IBM\\IBM\liberty_jars"/>
        <variable name="SHARED_LIB_CONFLU" value="C:\IBM\SHARED_LIB"/>

         <resourceAdapter autoStart="true" id="eciResourceAdapter" location="${SHARED_LIB_CONFLU}/cicseci-9.1.rar">
          <classloader apiTypeVisibility="spec, ibm-api, third-party"/>
       </resourceAdapter>

       <library apiTypeVisibility="spec, ibm-api, third-party" id="gneislibrary">
          <folder dir="${SHARED_LIB_CONFLU}"/>
       </library>
        <!-- drivers lib -->
        <!-- ORACLE -->
        <library id="oracle-lib">
            <fileset dir="${SHARED_LIB_ROOT}\drivers\oracle" includes="oracle-ojdbc6-11.2.0.3.0.jar"/>
        </library>
        <!-- DB2 -->
        <library id="db2-lib">
            <fileset dir="${SHARED_LIB_ROOT}\drivers\db2" includes="db2jcc.jar db2jcc_license_cisuz.jar"/>
        </library>

        <!-- To access this server from a remote client add a host attribute to 
            the following element, e.g. host="*" -->
        <httpEndpoint httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/>

        <!-- Automatically expand WAR files and EAR files -->
        <applicationManager autoExpand="true"/>

        <applicationMonitor updateTrigger="mbean"/>

       <connectionFactory id="eciTest" jndiName="eis/CICSPWAS">
          <properties.eciResourceAdapter TPNName="SCTG" connectionUrl="my_hostname" portNumber="my_port_number" tracelevel="3" userName="my_user_name"/>
       </connectionFactory>

        <!-- external libs -->
        <library id="external-lib">
            <fileset dir="${SHARED_LIB_ROOT}\external-lib" includes="*"/>
            <folder dir="${SHARED_LIB_ROOT}\external-lib"/>
        </library>
            <quickStartSecurity userName="wasadmin" userPassword="123456"/> 




        <webApplication contextRoot="/myapp" id="oauth" location="myapp.war" name="myapp">
              <classloader apiTypeVisibility="spec, ibm-api, third-party" classProviderRef="eciResourceAdapter" commonLibraryRef="gneislibrary" delegation="parentFirst"/>
       </webApplication>
        <keyStore location="${server.output.dir}/resources/security/key.jks"></keyStore>
    </server>

2 个答案:

答案 0 :(得分:1)

当CICS TG RAR代码检查交互规范是否从应用程序传递了预期的ECIInteractionSpec实例时,将发出“传递给execute()的ECIInteractionSpec类型的CTG9628E InteractionSpec”消息。这表明应用程序未通过预期的ECIInteractionSpec。一种可能是用于编译应用程序的CICS TG RAR文件不同于定义WebSphere Liberty服务器概要文件的CICS TG RAR文件的版本。

您能否尝试从以下位置下载最新版本的CICS TG RAR文件:

  

https://developer.ibm.com/cics/2016/03/11/cics-tg-sdks

将CICS TG RAR文件从/cicstgsdk/api/jee/runtime/managed/cicseci.rar复制(提取)到您的应用程序中,然后重新编译该应用程序。在自由概要文件中也使用相同的CICS TG RAR并验证方案。

答案 1 :(得分:0)

我修复了它。非常感谢你们的帮助。该项目包含了对非常老版本的cicseci库的传递依赖。我排除了它们。我还不明白为什么它在WAS上能完美地工作,而在WLP中却失败了。