spring JaxRpcPortProxyFactoryBean webservice 从tomcat移植到weblogic的问题

环境:jdk1.5,weblogic9.2,tomcat5

 

报错信息如下:

javax.xml.rpc.JAXRPCException: failed to invoke operation 'ApplyGJ' due to an error in the soap layer (SAAJ); nested exception is: Message[ failed to serialize interface javax.xml.soap.SOAPElementweblogic.xml.schema.binding.SerializationException: mapping lookup failure. class=interface javax.xml.soap.SOAPElement class context=TypedClassContext{schemaType=['http://test.org/']:ApplyGJ}]StackTrace[

javax.xml.soap.SOAPException:  failed to serialize interface javax.xml.soap.SOAPElementweblogic.xml.schema.binding.SerializationException: mapping lookup failure. class=interface javax.xml.soap.SOAPElement class context=TypedClassContext{schemaType=['http://test.org/']:ApplyGJ}
 at weblogic.webservice.core.DefaultPart.invokeSerializer(DefaultPart.java:335)
 at weblogic.webservice.core.DefaultPart.toXML(DefaultPart.java:300)
 at weblogic.webservice.core.DefaultMessage.toXML(DefaultMessage.java:651)
 at weblogic.webservice.core.ClientDispatcher.send(ClientDispatcher.java:209)
 at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:146)
 at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:473)
 at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:459)
 at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:569)
 at weblogic.webservice.core.rpc.CallImpl.invoke(CallImpl.java:422)
 at org.springframework.remoting.jaxrpc.JaxRpcPortClientInterceptor.performJaxRpcCall(JaxRpcPortClientInterceptor.java:547)
 at org.springframework.remoting.jaxrpc.JaxRpcPortClientInterceptor.invoke(JaxRpcPortClientInterceptor.java:507)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)

 

原因:

weblogic下访问webservic取ServiceFactory.SERVICEFACTORY_PROPERTY时,默认的是weblogic.webservice.core.rpc.ServiceFactoryImpl。(weblogic rpc的实现)
spring JaxRpcPortProxyFactoryBean访问webservice,需要设置系统属性ServiceFactory.SERVICEFACTORY_PROPERTY为org.apache.axis.client.ServiceFactory
即使用org.apache.axis.client.ServiceFactory方式调用webservice。

 

解决方法:

在调用webservice前,设置系统属性:

System.setProperty(ServiceFactory.SERVICEFACTORY_PROPERTY, "org.apache.axis.client.ServiceFactory");

即可.

 

另外找到类似问题,http://blog.csdn.net/bibitoo712/archive/2009/01/08/3732866.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值