CXF调用Webservice项目在linux系统上报错

1,最近工作的项目大量使用cxf框架调用webservice,开发完成部署到linux系统的服务器时,出现异常

CXF调用Webservice项目在linux系统上报错_第1张图片

惭愧,博主水平有限,百度一翻也没解决这个问题,最后舍弃cxf,使用axis2框架解决了这个问题。。。

2.在http://axis.apache.org/axis2/java/core/download.cgi官网下载

CXF调用Webservice项目在linux系统上报错_第2张图片

将下载好的文件考到linux服务器上的某个文件夹

CXF调用Webservice项目在linux系统上报错_第3张图片

2.1.使用命令进入axis2-1.4的bin 目录,执行

./wsdl2java.sh  -uri   webservice接口的wsdl,如

./wsdl2java.sh  -uri    http://******?wsdl

2.2.执行过后可能会提醒你没有JAVA_HOME的路径,执行

export  -JAVA_HOME=  jdk的安装目录,如

export -JAVA_HOME =  ./opt/jdk

2.3再执行上述命令,会在bin目录里面生成src文件,里面是生成的客户端代码,将其拷贝到windows上的eclipse里面

CXF调用Webservice项目在linux系统上报错_第4张图片

2.4.  客户端调用代码如下

CXF调用Webservice项目在linux系统上报错_第5张图片

注意 :URL 不是wsdl  是发布的web服务地址

第二种方法:

使用RPC调用,自己拼装请求xml,虽然繁琐,但没有在遇到稀奇古怪的错误

public static OMElement sendWebserviceByRPC(String serviceUrl,String methodName,String namespace,String namespacePrefix,Map params) throws Exception{
	    	EndpointReference targetEPR = new EndpointReference(serviceUrl);// 接口地址
			RPCServiceClient sender = new RPCServiceClient();
			Options options = sender.getOptions();

			options.setTo(targetEPR);
			options.setAction(" ");// 调用接口方法

			OMFactory fac = OMAbstractFactory.getOMFactory();
			// 设置命名空间
			OMNamespace omNs = fac.createOMNamespace(namespace, namespacePrefix);
			// 设置方法名称
			OMElement method = fac.createOMElement(methodName, omNs);
			
			for (Map.Entry entry : params.entrySet())
			if ((entry.getKey() != null)
					&& (!"".equals(((String) entry.getKey()).trim()))) {

				OMElement value = fac.createOMElement((String) entry.getKey(),
						null);
				value.setText(entry.getValue() + "");
				method.addChild(value);
			}
//			for (int i = 0; i < param.length; i++) {
//				// 设置入参名称
//				OMElement name = fac.createOMElement(param[i], null);
//				// 设置入参值
//				name.setText(values[i]);
//				method.addChild(name);
//			}
			method.build();
			logger.info("接口请求参数:" + method);
			OMElement response = sender.sendReceive(method); // 获取处理结果
			logger.info("接口响应参数:" + response);
			return response;

 

你可能感兴趣的:(工作学习,java基础)