- 浏览: 73263 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
yin_bp:
职业趋势 -
lingyunice:
很好,学习了
oracle定时器调用存储过程 -
yin_bp:
收益匪浅,不错,希望楼主继续
oracle定时器调用存储过程
使用axis(版本1.4)调用cxf服务端一直调用不成功,郁闷了一上午啊。经过google之后,嘻嘻~终于得以解决,讲述一下我的代码和解决过程
---使用了bboss mvc集成的cxf作为ws服务端
axis需要的jar包:axis.jar,axis-ant.jar,commons-discovery-0.2.jar,commons-logging-1.0.4.jar,jaxrpc.jar,log4j-1.2.8.jar,saaj.jar,wsdl4j-1.5.1.jar
错误原因就是因为没有在cxf服务端的方法中的参数上注解为ws调用的参数,修改服务端代码如下:
但是使用cxf调用cxf服务端,不管它有没有注解参数都可以成功调用!以后cxf服务端一定要记得注解参数
---使用了bboss mvc集成的cxf作为ws服务端
axis需要的jar包:axis.jar,axis-ant.jar,commons-discovery-0.2.jar,commons-logging-1.0.4.jar,jaxrpc.jar,log4j-1.2.8.jar,saaj.jar,wsdl4j-1.5.1.jar
import javax.jws.WebService; /** * <p>类的描述:XX数据同步</p> * @author XX * @version 1.0 * @date 2011-8-9 上午11:38:20 */ @WebService(name="DataSynInf") public interface DataSynInf { /** * XXXXXXXXX * @param xml * @return */ public String synMaterialAndBom(String xml); }
public static void testDemo() { try { String endpoint = " http://172.16.81.65:8080/cxfservices/InterfacePort"; // 调用过程 Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setOperationName("synMaterialAndBom");// WSDL里面描述的操作名称 call.addParameter("xml", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 操作的参数 call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型 call.setUseSOAPAction(true); // 给方法传递参数,并且调用方法 String temp = "good"; Object[] obj = new Object[] { temp }; String result = (String) call.invoke(obj); System.out.println("Result is : " + result); } catch (Exception e) { e.printStackTrace(); } }
AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client faultSubcode: faultString: Unmarshalling Error: unexpected element (uri:"", local:"xml"). Expected elements are <{}arg0> faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:Unmarshalling Error: unexpected element (uri:"", local:"xml"). Expected elements are <{}arg0> at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222) at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129) at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:719) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) at javax.xml.parsers.SAXParser.parse(SAXParser.java:375) at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) at org.apache.axis.Message.getSOAPEnvelope(Message.java:435) at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796) at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) at org.apache.axis.client.Call.invokeEngine(Call.java:2784) at org.apache.axis.client.Call.invoke(Call.java:2767) at org.apache.axis.client.Call.invoke(Call.java:2443) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at com.zoomlion.Demo.testDemo(Demo.java:81) at com.zoomlion.Demo.main(Demo.java:54) {http://xml.apache.org/axis/}hostname:PC-201010261558 Unmarshalling Error: unexpected element (uri:"", local:"xml"). Expected elements are <{}arg0> at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222) at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129) at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:719) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) at javax.xml.parsers.SAXParser.parse(SAXParser.java:375) at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) at org.apache.axis.Message.getSOAPEnvelope(Message.java:435) at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796) at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) at org.apache.axis.client.Call.invokeEngine(Call.java:2784) at org.apache.axis.client.Call.invoke(Call.java:2767) at org.apache.axis.client.Call.invoke(Call.java:2443) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at com.zoomlion.Demo.testDemo(Demo.java:81) at com.zoomlion.Demo.main(Demo.java:54)
错误原因就是因为没有在cxf服务端的方法中的参数上注解为ws调用的参数,修改服务端代码如下:
import javax.jws.WebParam; import javax.jws.WebService; /** * <p>类的描述:XX数据同步</p> * @author XX * @version 1.0 * @date 2011-8-9 上午11:38:20 */ @WebService(name="DataSynInf") public interface DataSynInf { /** * 同步物料和bom关系接口 * @param xml * @return */ public String synMaterialAndBom(@WebParam(name="xml") String xml); }
但是使用cxf调用cxf服务端,不管它有没有注解参数都可以成功调用!以后cxf服务端一定要记得注解参数
发表评论
-
eclipse启动无响应
2013-04-18 11:35 6556http://www.jems.me/blog/web/115 ... -
mysql帮助
2012-03-19 17:58 0导入dump文件 mysql -uroot -p fantas ... -
maven中央仓库地址
2011-08-10 11:26 4550需要jar包时就不要到处去搜索下载了,mvn中央库一定能找到你 ... -
jquery使用积累
2011-08-05 10:56 744对于select的操作 1.删除select名称为link_, ... -
js转码内置函数
2011-07-28 10:25 430escape()编码,不能编码URI unescape()解码 ... -
JAVA正则表达式收集
2011-07-05 17:56 744匹配中文字符的正则表 ... -
eclipse知识库
2011-07-05 17:51 8981、利其器 项目组使用eclipse统一编码,即修改ecl ... -
软件版本Beta,RC,Demo,Build
2011-01-01 15:04 749总结 版本号: V(Version):即版本,通常用数字表示版 ... -
学习网页大全
2009-09-08 17:21 804设计模式study:http://www.jdon.com/d ...
相关推荐
cxf客户端调用axis服务端流程
使用axis调用WebService服务端
cxf客户端调用axis服务端流程.docxcxf客户端调用axis服务端流程.docx
axis2客户端调用服务端,带用户身份认证
java客户端程序调用webservice接口
Axis和CXF的比较.txtAxis和CXF的比较.txtAxis和CXF的比较.txt
webservice axis2 cxf jar包及简单实例
现在主流的webService框架,一个是axis2,一个是cxf,本资源是基于cxf框架的简单例子
Axis1.4从服务端到客户端图文攻略,同时附赠Axis1.4 Jar包。 本攻略经过多次测试可靠耐用,并同时带有详细的文字说明,保证一学就会!从现在起axis不再是问题!让你爱上web service!
基于Axis编写webservice服务端和客户端时需要的jar包整理
axis.jar,axis-ant.jar,commons-discovery-0.2.jar,commons-logging-1.0.4.jar,jaxrpc.jar,log4j-1.2.8.jar,saaj.jar,wsdl4j-1.5.1.jar
NULL 博文链接:https://lcy0202.iteye.com/blog/1476152
axis生成webservice服务端和客户端详细说明及实例
axis2测试服务端所需jar包.zip 在jdk 1.7 ,1.8 亲测没问题,项目已上线
axis1.4服务端的编写,简单的写了一个接口和实现类,客户端可以用WSDL2JAVA生成的代码调用
1.Axis2创建服务端实例:一种是用axis2插件通过实现class生成的myServer.aar,另一种是通过手写services.xml然后用jar -cvf Axis2Server.aar生成的服务,发布的区别。 2.其实把myServer.aar里面的class删掉照样ok,...
使用axis和CXF实现web service的说明文档。
基于axis2实现的webservice简单实现(客户端+服务端)。
Axis2与Eclipse整合开发的Web Service的服务端