两个使用了ssh的项目如何通过webService互相访问?

爱花的石头 2010-09-06 09:36:48
问题如题目所示。。我用ssh作了两个项目。。用了两个oracle的用户。。。一个作为服务端,另外一个作为客户端。。。

服务端经过不懈努力。。终于使用XFire。。成功发布了。。可以看到生成的wsdl...... 然后我在客户端调用测试代码如下:


ObjectServiceFactory serviceFactory=new ObjectServiceFactory();
Service service=serviceFactory.create(IUserBiz.class);
XFireFactory xFireFactory=XFireFactory.newInstance();
XFire xFire=xFireFactory.getXFire();
XFireProxyFactory proxyFactory=new XFireProxyFactory();
String url="http://localhost:8080/addressBook/services/userbiz";
IUserBiz userBiz=(IUserBiz)proxyFactory.create(service, url);

userBiz.addObject(t);


把tomat启动后调用。结果错了一个下面的错误:


org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Couldn't instantiate class. null
org.codehaus.xfire.fault.XFireFault: Couldn't instantiate class. null
at org.codehaus.xfire.fault.Soap11FaultSerializer.readMessage(Soap11FaultSerializer.java:31)
at org.codehaus.xfire.fault.SoapFaultSerializer.readMessage(SoapFaultSerializer.java:28)
at org.codehaus.xfire.soap.handler.ReadHeadersHandler.checkForFault(ReadHeadersHandler.java:111)
at org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:67)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Client.onReceive(Client.java:406)
at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:139)
at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
at org.codehaus.xfire.client.Client.invoke(Client.java:336)
at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
at $Proxy0.addObject(Unknown Source)
at com.ehome.dao.UserDao.addObject(UserDao.java)
at com.ehome.biz.UserBiz.addUser(UserBiz.java)
at com.ehome.actions.LoginAction.doRegister(LoginAction.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

看这错误貌似是无法实例化某一个类。。。。但我这里只是添加一个POJO的 User实体类对象 t 进数据库,但是这个类是我在服务器端的一个类。。。所有类用的时候是把服务端打成 Jar 包给客户端用的。。客户端spring产生一个这样的实体,然后调用服务端的方法来添加这个对象。。这样行不行呢??。。。。会不会是由于这个原因?

说的思维比较乱。。有什么不清楚的请说明一下。。。小弟刚学ssh不久。。加上XFire以后。就更加晕了。。希望大侠们帮一下忙。。。感激不尽。。









...全文
444 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧