weblogic ワーク マネージャを使用して、Web サービスから、外部 Web サービスを呼び出す EJB (同じ ear 内) への呼び出しを行っています。
1回の呼び出しを行うと、常に完全に機能するため、サービスを呼び出すためのセットアップが正しいことがわかります...
しかし、別の呼び出しを追加するとすぐに、(EJB から Web サービスへの) 失敗することがあり、EJB から外部 Web サービスへの呼び出しでこの例外が発生します (作業マネージャーに追加する呼び出しが増えるほど失敗します) )
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 から外部 Web サービスへの呼び出しの前後にロギングを追加しました。workmanagers を介した複数の呼び出しが EJB に対して行われていることがわかります。しかし、EJB 内では例外がスローされるようです。ワークマネージャーのセットアップに問題があるかどうかを特定するだけですが、それは問題ないようです。
問題は、外部 Web サービスを呼び出す EJB にあるようです。
一度に 1 つずつではなく、同時呼び出しでこのエラーが発生するのはなぜですか?