Я использую менеджеры работы weblogic для вызова из моего веб-сервиса EJB (в том же ухе), который вызывает внешний веб-сервис.
Если я делаю 1 вызов, он всегда работает отлично, поэтому я знаю, что настройка правильная для вызова службы...
Но как только я добавляю к нему еще один вызов (вызовы), он иногда терпит неудачу (от EJB к веб-службе) с этим исключением для вызова EJB к внешней веб-службе (чем больше вызовов я добавляю к диспетчерам работ, тем больше он терпит неудачу )
org.springframework.remoting.RemoteAccessException: Could not access remote service [SomeServicePort]; nested exception is java.net.MalformedURLException
at org.springframework.remoting.rmi.RmiClientInterceptorUtils.convertRmiAccessException(RmiClientInterceptorUtils.java:190)
at org.springframework.remoting.jaxrpc.JaxRpcPortClientInterceptor.handleRemoteException(JaxRpcPortClientInterceptor.java:737)
at org.springframework.remoting.jaxrpc.JaxRpcPortClientInterceptor.doInvoke(JaxRpcPortClientInterceptor.java:595)
at org.springframework.remoting.jaxrpc.JaxRpcPortClientInterceptor.invoke(JaxRpcPortClientInterceptor.java:562)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy112.obtainClinicalCode(Unknown Source)
...
Caused by: java.net.MalformedURLException
at java.net.URL.<init>(URL.java:601)
at java.net.URL.<init>(URL.java:464)
at java.net.URL.<init>(URL.java:413)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:133)
...
Моя служба настроена в Spring (2.5) в контексте моего приложения следующим образом.
<bean id="MyService"
class="org.springframework.remoting.jaxrpc.JaxRpcPortProxyFactoryBean"
lazy-init="true" scope="prototype">
<property name="serviceFactoryClass">
<value>org.apache.axis.client.ServiceFactory</value>
</property>
<property name="wsdlDocumentUrl">
<value>myWSDLPath...</value>
</property>
<property name="namespaceUri">
<value>com.controller</value>
</property>
<property name="serviceName">
<value>Mine</value>
</property>
<property name="portName">
<value>MinePort</value>
</property>
<property name="portInterface">
<value>com.MineServiceRemote</value>
</property>
<property name="serviceInterface">
<value>com.MineService</value>
</property>
<property name="lookupServiceOnStartup" value="false" />
</bean>
Я использую Java 5 и Weblogic 10. Я добавил ведение журнала до и после вызовов внешнего веб-сервиса из EJB: я вижу, что в EJB делается несколько вызовов через workmanagers. Но внутри EJB, похоже, выдается исключение. Просто чтобы изолировать, если что-то не так с настройкой workmanager, но, похоже, все в порядке.
Проблема, похоже, заключается в том, что EJB делает вызов внешней веб-службы.
Почему я получаю эту ошибку для одновременных вызовов, а не для одного за раз?