小弟采用以下工具Spring2.5+hibernate3.3+Axis2写了个Demo,即:客户端请求服务器,服务端返回给客户端一个实例(Pojo),如果这个Pojo是简单的,即Pojo的属性是简单的属性,就没有问题.
但是如果Pojo是一个复杂类型的.即如果A类中含有B类的属性.
客户端也要有AB两个类,并且关系和服务器端一模一样,并且某方法的返回值是A.客户端在接收的收到就报错了.2009-08-17 16:01:33,765 INFO [org.apache.axis2.deployment.ModuleDeployer] - Deploying module: metadataExchange-1.5 - file:/E:/JAVAEEJAR/axis2 1.5/axis2-1.5/lib/mex-1.5.jar
=====创建失败了!!==========
org.apache.axis2.AxisFault: java.lang.NullPointerException
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:517)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:371)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:539)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:520)
at org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:102)
at com.axis2.client.Springlient.main(Springlient.java:40)
服务器端报以下错误:2009-08-17 16:01:33,984 ERROR [org.apache.axis2.rpc.receivers.RPCMessageReceiver] - java.lang.NullPointerException
org.apache.axiom.om.OMException: java.lang.NullPointerException
        at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:260)
        at org.apache.axiom.om.impl.llom.OMNodeImpl.build(OMNodeImpl.java:335)
        at org.apache.axiom.om.impl.llom.OMElementImpl.build(OMElementImpl.java:737)
        at org.apache.axiom.om.impl.llom.OMElementImpl.detach(OMElementImpl.java:706)
        at org.apache.axiom.om.impl.llom.OMNodeImpl.setParent(OMNodeImpl.java:124)
        at org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:297)
        at org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:213)
        at org.apache.axis2.rpc.receivers.RPCUtil.processResponse(RPCUtil.java:104)
        at org.apache.axis2.rpc.receivers.RPCUtil.processResponseAsDocLitWrapped(RPCUtil.java:437)
        at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:138)
        at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
        at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173)
        at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:167)
        at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:142)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:73)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
        at org.apache.axis2.databinding.utils.BeanUtil.getPropertyQnameList(BeanUtil.java:239)
        at org.apache.axis2.databinding.utils.BeanUtil.getPullParser(BeanUtil.java:67)
        at org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.processProperties(ADBXMLStreamReaderImpl.java:998)
        at org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.next(ADBXMLStreamReaderImpl.java:854)
        at org.apache.axis2.util.StreamWrapper.next(StreamWrapper.java:71)
        at javax.xml.stream.util.StreamReaderDelegate.next(StreamReaderDelegate.java:60)
        at org.apache.axiom.om.impl.builder.SafeXMLStreamReader.next(SafeXMLStreamReader.java:183)
        at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:597)
        at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:172)
        ... 37 more但是有一点就是服务端到数据库中查数据的时候查到了,显示是返回给客户端的时候出问题,以下是我的客户端的代码package com.axis2.client;import javax.xml.namespace.QName;import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;import com.axis2.client.pojo.DemoArticle;/**
 * RPC方式的链接
 * 
 * @author Administrator
 * 
 */
public class Springlient
{
public static void main(String[] args)
{
try
{
// 创建一个RPC的客户端实例
RPCServiceClient rpcServiceClient = new RPCServiceClient();
// 拿到相关的配置
Options options = rpcServiceClient.getOptions();
// 创建一个远程的访问地址
EndpointReference target = new EndpointReference(
"http://192.168.0.103:8080/passport/services/demoArticle");
options.setTo(target);
// 创建一个Qname的命名空间,默认的是域名倒过来写,第二个参数的写方法名
QName qgetname = new QName("http://implay.service.demo.passport.com",
"findOneArticleService");
// 参数
Object[] objargs = new Object[] {2};
// 数组的实例
Class[] getobj = new Class[] { DemoArticle.class };
// 返回的数组实例.
Object[] response = rpcServiceClient.invokeBlocking(qgetname,
objargs, getobj);
// 拿到请求的对象.
DemoArticle per = (DemoArticle) response[0]; if (per == null)
{
System.out.println("====wea没有初始化==========");
} System.out.println(per.getContent() + "------------"
+ per.getTitle());


} catch (AxisFault e)
{
System.out.println("=====创建失败了!!==========");
e.printStackTrace();
} }
}我的Pojo的关系如下:
A类
我做了个一对多的双向关联.结果就报错了.请axis2的高手们帮小弟瞧瞧吧.谢谢