Java 获取org.springframework.remoting.RemoteAccessException:在一个接一个地进行几次呼叫时无法访问远程服务?
我使用weblogic工作管理器从我的webservice调用调用外部webservice的EJB(在同一个ear中) 如果我打1个电话,它总是工作得很好,所以我知道呼叫服务的设置是正确的 但是,一旦我向它添加了另一个调用,它有时就会失败(从EJB到web服务),EJB到外部web服务的调用除外(我向工作管理器添加的调用越多,它失败的次数就越多)Java 获取org.springframework.remoting.RemoteAccessException:在一个接一个地进行几次呼叫时无法访问远程服务?,java,spring,web-services,jakarta-ee,malformedurlexception,Java,Spring,Web Services,Jakarta Ee,Malformedurlexception,我使用weblogic工作管理器从我的webservice调用调用外部webservice的EJB(在同一个ear中) 如果我打1个电话,它总是工作得很好,所以我知道呼叫服务的设置是正确的 但是,一旦我向它添加了另一个调用,它有时就会失败(从EJB到web服务),EJB到外部web服务的调用除外(我向工作管理器添加的调用越多,它失败的次数就越多) org.springframework.remoting.RemoteAccessException:无法访问远程服务[SomeServicePort
org.springframework.remoting.RemoteAccessException:无法访问远程服务[SomeServicePort];嵌套异常是java.net.MalformedURLException
位于org.springframework.remoting.rmi.rmiclienterceptorutils.convertRmiAccessException(rmiclienterceptorutils.java:190)
位于org.springframework.remoting.jaxrpc.JaxRpcPortClientInterceptor.handleRemoteException(JaxRpcPortClientInterceptor.java:737)
位于org.springframework.remoting.jaxrpc.JaxRpcPortClientInterceptor.doInvoke(JaxRpcPortClientInterceptor.java:595)
位于org.springframework.remoting.jaxrpc.JaxRpcPortClientInterceptor.invoke(JaxRpcPortClientInterceptor.java:562)
位于org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:171)
位于org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
价格为$Proxy112.AcquitainClinicalCode(未知来源)
...
原因:java.net.MalformedURLException
在java.net.URL.(URL.java:601)
在java.net.URL.(URL.java:464)
在java.net.URL.(URL.java:413)
位于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>
org.apache.axis.client.ServiceFactory
myWSDLPath。。。
com.controller
矿
雷场
com.MineServiceRemote
com.MineService
我正在使用Java5和WebLogic10。我在EJB调用外部Web服务之前和之后添加了日志记录:我可以看到通过WorkManager对EJB进行了多个调用。但在EJB内部,它似乎抛出了异常。只是为了隔离workmanager设置是否有任何问题,但这似乎没问题
问题似乎在于EJB调用外部web服务
为什么并发调用会出现此错误,而不是一次1个?问题在于spring配置中定义的bean 我没有像这样定义它,而是将WSDL保存到我的项目中,并使用POM中定义的WSDL2Code为我生成存根
<plugin>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-wsdl2code-maven-plugin</artifactId>
<version>1.5.4</version>
<executions>
<execution>
<id>myWebService</id>
<goals>
<goal>wsdl2code</goal>
</goals>
<configuration>
<packageName>PackageWhereIWantTheCodeToBeGeneratedTo</packageName>
<wsdlFile>${project.basedir}/src/main/resources/pathToWhereMyWsdlIsSavedInMyProject</wsdlFile>
<databindingName>jaxbri</databindingName>
<syncMode>sync</syncMode>
<generateTestcase>false</generateTestcase>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-jaxbri</artifactId>
<version>1.5.4</version>
</dependency>
</dependencies>
</plugin>
org.apache.axis2
axis2-wsdl2code-maven-plugin
1.5.4
myWebService
wsdl2code
我希望生成代码的程序包
${project.basedir}/src/main/resources/pathToWhereMyWsdlIsSavedInMyProject
贾克斯布里
同步
错误的
org.apache.axis2
axis2 jaxbri
1.5.4
然后在我的代码中创建一个新的存根并调用为我生成的方法
<plugin>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-wsdl2code-maven-plugin</artifactId>
<version>1.5.4</version>
<executions>
<execution>
<id>myWebService</id>
<goals>
<goal>wsdl2code</goal>
</goals>
<configuration>
<packageName>PackageWhereIWantTheCodeToBeGeneratedTo</packageName>
<wsdlFile>${project.basedir}/src/main/resources/pathToWhereMyWsdlIsSavedInMyProject</wsdlFile>
<databindingName>jaxbri</databindingName>
<syncMode>sync</syncMode>
<generateTestcase>false</generateTestcase>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-jaxbri</artifactId>
<version>1.5.4</version>
</dependency>
</dependencies>
</plugin>