Невозможно вызвать метод веб-сервиса из клиента веб-сервиса, работающего в Jboss7

1

У меня возникли проблемы с запуском некоторого кода в JBoss 7.3.0 (см. Версию ниже), чтобы вызвать веб-службу, которая не работает в JBoss. Я получаю ошибку, как показано ниже.

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

Я создал java-класс @WebServiceClient с помощью инструмента JBOSS_HOME\bin\wsconsume.bat. Я использую технику, где передаю объект URL и QName конструктору класса @WebServiceClient. Я вижу, что код способен читать wsdl из URL (используя адрес http://), но, как вы можете видеть в приведенном ниже исключении, он не может видеть методы.

Я проверил, что код работает вне JBoss, запустив автономное приложение java, которое делает то же самое, и оно может подключиться к веб-сервису, вызвать метод и прочитать ответ.

Я заметил что-то интересное, если я закрою веб-сервис, а затем изменил код, чтобы прочитать wsdl из копии wsdl, хранящейся локально на fileyetem (URL-адрес файла:/вместо http://), то та же ошибка произведенный, что кажется мне очень странным, почти так, как если бы JBoss не разрешал исходящее соединение с веб-сервисом. Когда веб-сервис запущен (и код возвращается на использование URL-адреса http), похоже, что JBoss может прочитать wsdl (ведение журнала показывает, что веб-методы были прочитаны из wsdl), но не подключается к веб-сервису.

Версии:

JBoss: EAP 6.2.0.GA (построен на AS 7.3.0) Java: 1.6.0_45

Исключение показано здесь:

    13:14:02,451 INFO  [org.apache.cxf.service.factory.ReflectionServiceFactoryBean] (Thread-4 (HornetQ-client-global-threads-1486295624)) Creating Service {http://www.ibm.com/maximo/wsdl/FR_MXWOWS}FR_MXWOWS from WSDL: file:/Dimensions/NIW_DEV/niw/ext/src/main/resources/wsdl/MockMaximoService.wsdl
    13:14:02,541 WARNING [org.apache.cxf.service.factory.ReflectionServiceFactoryBean] (Thread-4 (HornetQ-client-global-threads-1486295624)) No method was found for the WSDL operation {http://www.ibm.com/maximo/wsdl/FR_MXWOWS}UpdateFR_MXWO.
    13:14:02,541 WARNING [org.apache.cxf.service.factory.ReflectionServiceFactoryBean] (Thread-4 (HornetQ-client-global-threads-1486295624)) No method was found for the WSDL operation {http://www.ibm.com/maximo/wsdl/FR_MXWOWS}CreateFR_MXWO.
    13:14:02,541 WARNING [org.apache.cxf.service.factory.ReflectionServiceFactoryBean] (Thread-4 (HornetQ-client-global-threads-1486295624)) No method was found for the WSDL operation {http://www.ibm.com/maximo/wsdl/FR_MXWOWS}DeleteFR_MXWO.
    13:14:02,551 WARNING [org.apache.cxf.service.factory.ReflectionServiceFactoryBean] (Thread-4 (HornetQ-client-global-threads-1486295624)) No method was found for the WSDL operation {http://www.ibm.com/maximo/wsdl/FR_MXWOWS}SyncFR_MXWO.
    13:14:02,551 WARNING [org.apache.cxf.service.factory.ReflectionServiceFactoryBean] (Thread-4 (HornetQ-client-global-threads-1486295624)) No method was found for the WSDL operation {http://www.ibm.com/maximo/wsdl/FR_MXWOWS}QueryFR_MXWO.
    13:14:03,203 DEBUG [com.amtsybex.dts.core.brp.ExtendedRuleClassLoader] (Thread-4 (HornetQ-client-global-threads-1486295624)) findClass:[com.amtsybex.dts.niw.rules.DummyRule$$anonfun$execute$5]
    13:14:03,203 INFO  [com.amtsybex.dts.niw.rules.DummyRule] (Thread-4 (HornetQ-client-global-threads-1486295624)) got the port
    13:14:03,203 ERROR [com.amtsybex.dts.ejb3.BRPBean] (Thread-4 (HornetQ-client-global-threads-1486295624)) Failed while processing file:[182] exception:[com.amtsybex.dts.core.DtsInternalException: javax.xml.ws.WebServiceException: Could not find wsdl:binding operation info for web method createFRMXWO.]; handing off to component error handler
    13:14:03,213 INFO  [com.amtsybex.dts.core.jms.BackoffComponentErrorHandler] (Thread-4 (HornetQ-client-global-threads-1486295624)) Error type:[com.amtsybex.dts.core.DtsInternalException] will be consumed
    13:14:03,213 ERROR [com.amtsybex.dts.core.jms.BackoffComponentErrorHandler] (Thread-4 (HornetQ-client-global-threads-1486295624)) Consuming exception: com.amtsybex.dts.core.DtsInternalException: javax.xml.ws.WebServiceException: Could not find wsdl:binding operation info for web method createFRMXWO.
        at com.amtsybex.dts.core.brp.ScalaBrpService.executeRules(ScalaBrpService.java:86) [marketflow-api-JBOSS_PORT.1.1.jar:JBOSS_PORT.1.1]
        at com.amtsybex.dts.core.brp.AbstractBrpComponent.executeRules(AbstractBrpComponent.java:30) [marketflow-api-JBOSS_PORT.1.1.jar:JBOSS_PORT.1.1]
        at com.amtsybex.dts.ejb3.BRPBean.processFile(BRPBean.java:50) [marketflow-ejb30-JBOSS_PORT.1.1.jar:JBOSS_PORT.1.1]
        at com.amtsybex.dts.ejb3.AbstractDtsMessageDrivenBean.doDtsProcessing(AbstractDtsMessageDrivenBean.java:160) [marketflow-ejb30-JBOSS_PORT.1.1.jar:JBOSS_PORT.1.1]
        at com.amtsybex.dts.ejb3.AbstractDtsMessageDrivenBean.onMessage(AbstractDtsMessageDrivenBean.java:99) [marketflow-ejb30-JBOSS_PORT.1.1.jar:JBOSS_PORT.1.1]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_45]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_45]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_45]
        at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_45]
        at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72) [jboss-as-ee-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:58) [jboss-as-ee-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:58) [jboss-as-ee-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43) [jboss-as-ejb3-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53) [jboss-as-ee-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) [jboss-as-ejb3-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:250) [jboss-as-ejb3-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:341) [jboss-as-ejb3-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:238) [jboss-as-ejb3-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [jboss-as-ejb3-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64) [jboss-as-ejb3-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) [jboss-as-ejb3-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) [jboss-as-ee-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:55) [jboss-as-ejb3-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponentDescription$5$1.processInvocation(MessageDrivenComponentDescription.java:203) [jboss-as-ejb3-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) [jboss-as-ee-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165) [jboss-as-ee-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:182) [jboss-as-ee-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
        at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:72) [jboss-as-ee-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at javax.jms.MessageListener$$$view19.onMessage(Unknown Source) [jboss-jms-api_1.1_spec-1.0.1.Final-redhat-2.jar:1.0.1.Final-redhat-2]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_45]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_45]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_45]
        at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_45]
        at org.jboss.as.ejb3.inflow.MessageEndpointInvocationHandler.doInvoke(MessageEndpointInvocationHandler.java:140) [jboss-as-ejb3-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at org.jboss.as.ejb3.inflow.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:73) [jboss-as-ejb3-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
        at com.sun.proxy.$Proxy23.onMessage(Unknown Source)
        at org.hornetq.ra.inflow.HornetQMessageHandler.onMessage(HornetQMessageHandler.java:328)
        at org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:1117)
        at org.hornetq.core.client.impl.ClientConsumerImpl.access$500(ClientConsumerImpl.java:57)
        at org.hornetq.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:1252)
        at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:107)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [rt.jar:1.6.0_45]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [rt.jar:1.6.0_45]
        at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_45]
    Caused by: javax.xml.ws.WebServiceException: Could not find wsdl:binding operation info for web method createFRMXWO.
        at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
        at com.sun.proxy.$Proxy57.createFRMXWO(Unknown Source)
        at com.amtsybex.dts.niw.rules.DummyRule.execute(DummyRule.scala:54)
        at com.amtsybex.dts.core.brp.ScalaBrpService.executeRules(ScalaBrpService.java:102) [marketflow-api-JBOSS_PORT.1.1.jar:JBOSS_PORT.1.1]
        at com.amtsybex.dts.core.brp.ScalaBrpService.executeRules(ScalaBrpService.java:53) [marketflow-api-JBOSS_PORT.1.1.jar:JBOSS_PORT.1.1]
        ... 65 more
Теги:
web-services
wsdl
jboss7.x

2 ответа

5

Я узнал, в чем проблема. JBoss7 только сканирует аннотации в классах в развернутых ушах. Я создал классы java для wsdl (используя JBOSS_HOME\bin\wsconsome.bat) и поместил файлы.class в банку, которую я разместил в модуле, на который ссылалось ухо. Когда я удалил банку из каталога модулей и поместил ее в каталог lib внутри уха, это устранило проблему.

См. Предыдущий мой вопрос для более подробного сканирования аннотаций: spring @PostConstruct не стреляет в JBoss7

  • 0
    Вы также можете добавить конфигурацию в модуль, чтобы jboss сканировал модуль на наличие аннотаций, как указано здесь docs.jboss.org/author/display/AS71/…
1

Я JaxWsProxyFactoryBean экземпляр интерфейса службы из JaxWsProxyFactoryBean с зарегистрированным serviceClass. В WildFly 10 мне пришлось добавлять зависимости для javax.annotation.api (для распознавания аннотаций) и javax.jws.api (для распознавания @WebService).

  • 0
    очень полезно спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню