java .lang.NoClassDefFoundError в EAR - PullRequest
0 голосов
/ 07 мая 2020

Я создаю EAR, в котором есть WAR, и развертываю его на сервере wildfly. Для запуска проекта требуется sapjco3.jar. Я помещаю банку на сервер и создаю XML в EAR, чтобы использовать его.

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
    <!-- Make sub deployments isolated by default, so they cannot see each others classes without a Class-Path entry -->
    <ear-subdeployments-isolated>false</ear-subdeployments-isolated>
    <!-- This corresponds to the top level deployment. For a war this is the war's module, for an ear -->
    <!-- This is the top level ear module, which contains all the classes in the EAR's lib folder     -->
    <deployment>
        <exclusions>
            <module name="org.apache.log4j" />
        </exclusions>
        <!-- This allows you to define additional dependencies, it is the same as using the Dependencies: manifest attribute -->
        <dependencies>
            <module name="deployment.nana-app.ear" export="true" />
            <module name="deployment.sapjco3.jar" export="true" />
        </dependencies>
        <!-- These add additional classes to the module. In this case it is the same as including the jar in the EAR's lib directory -->
        <resources> 
        </resources>
    </deployment>
</jboss-deployment-structure>

Развертывание выполнено успешно, но когда я использую его ниже, произошла ошибка.

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: java.lang.NoClassDefFoundError: Could not initialize class com.sap.conn.jco.JCo
    ... 206 more
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.sap.conn.jco.JCo
    at com.sap.conn.jco.JCoDestinationManager.getDestination(JCoDestinationManager.java:77)
    at com.SAPcall.SAPcallBean.ContractCreate(SAPcallBean.java:586)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

Местоположение банка правильное, потому что у меня есть другой WAR, использующий его, и он работает. с моим проектом? Мне нужно добавить конфигурацию войны? Спасибо.

...