日期:2014-05-19  浏览次数:20636 次

我用xfire1.2.6 调用web service方法 还加入了soap验证
我用xfire1.2.6调用web service方法 中client.invoke() 还加入了soap验证 开始有语法错误 我引用了一个jar包 ,然后运行, 错误提示缺少包 ,我就按照提示添加了好多jar包 最后出现了这个错误
Exception in thread "main" javax.xml.stream.FactoryConfigurationError: Provider com.bea.xml.stream.MXParserFactory not found
at javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:72)
at javax.xml.stream.FactoryFinder.find(FactoryFinder.java:178)
at javax.xml.stream.FactoryFinder.find(FactoryFinder.java:92)
at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:136)
at org.codehaus.xfire.util.STAXUtils.<clinit>(STAXUtils.java:48)
at org.codehaus.xfire.transport.http.HttpChannel.writeWithoutAttachments(HttpChannel.java:54)
at org.codehaus.xfire.transport.http.CommonsHttpMessageSender.getByteArrayRequestEntity(CommonsHttpMessageSender.java:388)
at org.codehaus.xfire.transport.http.CommonsHttpMessageSender.send(CommonsHttpMessageSender.java:326)
at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:123)
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:75)
at org.codehaus.xfire.client.Client.invoke(Client.java:335)
at org.codehaus.xfire.client.Client.invoke(Client.java:349)
at com.yaofangwang.WebserviceTest.main(WebserviceTest.java:20) 

我用javaEE做的 就在控制台输出结果的那种 好像我的eclipse是别人给的一个压缩包 不需要安装的 直接解压就能用的那种 有jdk 貌似没有安装tomcat 是不是环境有问题 还是我这个eclipse不行 还是我代码写错了
代码就几行: 写了一个类ClientAuthenticationHandler继承AbstractHandler 里面有public void invoke(MessageContext context) throws Exception {...} 然后就是test.java类  
  Client client = new Client(new URL("www.xxx.com/xxx?wsdl"));
ClientAuthenticationHandler cs = new ClientAuthenticationHandler("1111");
client.addOutHandler(cs);
  Object[] results = client.invoke("GetMedicine", new Object[] {"-1","","guo","" });
  System.out.println(results[0]); 

 哪位大侠帮忙看看 是怎么回事

------解决方案--------------------
个人意见:你可以用工具wsimport生成客户端,很简单,也不用添加包。
http://www.cnblogs.com/simle/archive/2011/11/03/2233417.html
你可以去参考下,相当之简单
希望对你有帮助!