Веб-сервис работает на Tomcat 6, но не на JBoss AS 6 - PullRequest
1 голос
/ 06 декабря 2011

Я автоматически создал клиент веб-службы SOAP из WSDL (я использую JAVA 1.6), и он отлично работает на Tomcat 6. Однако, когда я ставлю клиента на войну и пытаюсь развернуть его на сервере приложений JBoss 6.1, я получаю следующие ошибки:

Caused by: java.lang.ExceptionInInitializerError
    at com.sun.xml.ws.tx.common.Util.isJTAAvailable(Util.java:71) [:1.0]
    at com.sun.xml.ws.assembler.PipelineAssemblerFactoryImpl$WsitPipelineAssembler.isTransactionsEnabled(PipelineAssemblerFactoryImpl.java:468) [:1.0]
    at com.sun.xml.ws.assembler.PipelineAssemblerFactoryImpl$WsitPipelineAssembler.createClient(PipelineAssemblerFactoryImpl.java:271) [:1.0]
    at com.sun.xml.ws.api.pipe.TubelineAssemblerFactory$TubelineAssemblerAdapter.createClient(TubelineAssemblerFactory.java:136) [:1.0]
    at com.sun.xml.ws.client.WSServiceDelegate.createPipeline(WSServiceDelegate.java:423) [:1.0]
    at com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:589) [:1.0]
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:329) [:1.0]
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:311) [:1.0]
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:304) [:1.0]
    **at javax.xml.ws.Service.getPort(Service.java:92) [:1.0.0.Final]**
    at com.ewave.meuhedet.ws.iclient.city.EWCITYServicesService.getEWCITYServices(EWCITYServicesService.java:74) [:]
    at com.ewave.meuhedet.ws.iclient.impl.PharmacyServiceIClientImpl.<init>(PharmacyServiceIClientImpl.java:58) [:]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [:1.6.0_26]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) [:1.6.0_26]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) [:1.6.0_26]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [:1.6.0_26]
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126) [:3.0.1.RELEASE-A]
    ... 105 more
**Caused by: java.lang.ClassCastException: com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple cannot be cast to javax.transaction.TransactionSynchronizationRegistry**
    at com.sun.xml.ws.tx.common.TransactionManagerImpl.<init>(TransactionManagerImpl.java:106) [:1.0]
    at com.sun.xml.ws.tx.common.TransactionManagerImpl.<clinit>(TransactionManagerImpl.java:62) [:1.0]
    ... 122 more

это автоматически сгенерированная функция getEWCITYServices

@WebEndpoint(name = "EW_CITYServices")
    public EWCITYServices getEWCITYServices() {
        return super.**getPort**(new QName("http://ew_city.wsbeans.iseries",
                "EW_CITYServices"), EWCITYServices.class);
    }

1 Ответ

1 голос
/ 09 декабря 2011

Похоже, вам придется придерживаться реализации WS, поддерживаемой JBoss (Native, CXF или Metro).

Попробуйте просто удалить из classpath все jar-файлы, содержащие реализацию sun (com.sun.xml.ws. *, так далее).В любом случае, она довольно старая и была заменена Метро.

См. http://www.jboss.org/jbossws.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...