soap java序列化_java – 在CXF中的SOAP响应错误地反序列化为null简单前端Aegis数据绑定...

我正在写一个SOAP Web服务的客户端.

我正在使用图书馆CXF.

与简单的前端.

和神盾数据绑定.

服务器正在为Web方法提供Java接口(名为MediaService),并在客户端项目中导入该接口.

然后我使用一个MediaService.aegis.xml文件来提供方法参数的名称(对于它们不被命名和序列化请求).

这是我在客户端上使用的代码:

ClientProxyFactoryBean factory = new ClientProxyFactoryBean();

factory.setDataBinding(new AegisDatabinding());

factory.setServiceClass(MediaService.class);

factory.setAddress(urlMediaServer);

MediaService service = (MediaService) factory.create();

final List listeReferences = service.sendMedia(bu, media);

服务界面如下所示:

public interface MediaService

{

public List sendMedia(String bu, Media media) throws Exception;

}

我启用了XML流日志记录,以便我看到发送到服务器的XML流,以及返回的流.

以下是流:

请求:

sc_phx

TEST_CODE

test.png

响应:

standard

photo

standard

photo

该服务被调用,它回复并且客户端收到正确的回复.

但是在客户端中,使Web Service调用的service.sendMedia(bu,media)行返回null.

反驳回复是有问题的.

你有什么想法,怎么解决?

最好的祝福.

更新:

我忘了提到这个方法:

MediaService service = (MediaService) factory.create();

我得到这个错误:

INFO: Creating Service {http://service.soclemedia.mycompany.com/}MediaService from class com.mycompany.soclemedia.service.MediaService

24 nov. 2011 15:18:37 org.apache.cxf.aegis.type.XMLTypeCreator

INFO: Could not set aegis schema. Not validating.

java.lang.UnsupportedOperationException: This parser does not support specification "null" version "null"

at javax.xml.parsers.DocumentBuilderFactory.setSchema(DocumentBuilderFactory.java:489)

at org.apache.cxf.aegis.type.XMLTypeCreator.(XMLTypeCreator.java:125)

at org.apache.cxf.aegis.AegisContext.createRootTypeCreator(AegisContext.java:122)

at org.apache.cxf.aegis.AegisContext.createTypeCreator(AegisContext.java:111)

at org.apache.cxf.aegis.AegisContext.initialize(AegisContext.java:153)

at org.apache.cxf.aegis.databinding.AegisDatabinding.initialize(AegisDatabinding.java:229)

at org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86)

at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:438)

at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:501)

at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:241)

at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101)

at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90)

at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:153)

...

这是我的cxf.xml:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:cxf="http://cxf.apache.org/core"

xsi:schemaLocation="http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd">

更新2:

这里是我的MediaService.aegis.xml:

### 回答1: 这是一个 SOAP 错误,表示在程序运行时发生了空指针异常。这意味着您的程序尝试调用了一个 null 对象的方法或访问了一个 null 对象的属性,而该对象的实际值为 null。解决这个问题的方法是检查您的代码,找出哪个对象是 null 并将其初始化为有效值。 ### 回答2: org.apache.cxf.binding.soap.SoapFault: Fault: java.lang.NullPointerException 是一个SOAP异常,它指出在处理SOAP消息时发生了一个空指针异常。 SOAP简单对象访问协议)是一种用于在网络上交换结构化信息的协议。当客户端与服务端之间通过SOAP通信时,可能会出现各种异常,包括空指针异常。 在这种情况下,org.apache.cxf.binding.soap.SoapFault 表示SOAP通信期间发生了错误,导致服务端返回了一个SOAP错误消息。这个错误消息的具体内容是 "Fault: java.lang.NullPointerException",意味着在服务端处理请求时发生了空指针异常。 空指针异常(java.lang.NullPointerException)通常是由于使用了一个空对象的引用而产生的。在这种情况下,服务端可能在处理请求过程调用了一个未初始化或为空的对象,导致空指针异常的抛出。这可能是由于代码缺陷、错误数据传递或其他运行时错误导致的。 要解决这个问题,需要检查服务端代码,并确保正确地初始化和使用对象引用,避免出现空指针异常。可以使用调试技术或添加日志语句来帮助确定引发异常的具体位置,并进行修复。此外,还可以检查数据传递过程是否存在错误,确保正确地传递和解析数据。 总之,org.apache.cxf.binding.soap.SoapFault: Fault: java.lang.NullPointerException 是一个SOAP异常,它告诉我们在处理SOAP消息时发生了一个空指针异常。解决此问题需要检查服务端代码,并确保正确地初始化和使用对象引用,以及确保数据传递过程的正确性。 ### 回答3: org.apache.cxf.binding.soap.SoapFault: Fault: java.lang.NullPointerException是一个SOAP协议的错误,它表示在CXF框架发生了一个空指针异常。 空指针异常(NullPointerException)通常是由于程序的某个对象为空而引起的。在这个特定的错误CXF框架在处理SOAP消息时发生了一个未预料到的空指针异常。 要解决这个问题,我们需要追踪错误的发生点并找出为空的对象。首先,检查CXF框架相关的配置文件,确保所有的依赖项都正确地配置和加载。如果配置正确,那么可能是代码的某个对象没有正确地被初始化或注入。 使用调试工具来调试代码是一种很好的方法,它可以帮助我们找出具体的出错位置。一旦错误点被确定,我们可以通过增加空检查的逻辑或者检查对象的初始化过程来解决这个问题。 另外,确保在CXF框架的使用过程遵循最佳实践,例如正确地配置和使用CXF的异常处理机制,以及正确地处理和记录异常信息。 总而言之,org.apache.cxf.binding.soap.SoapFault: Fault: java.lang.NullPointerException表示在CXF框架发生了一个空指针异常。为了解决这个问题,我们需要定位并修复代码的空指针异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值