当前位置 : 主页 > 网页制作 > Nodejs >

WebService学习总结 五 使用cxf 开发webService

来源:互联网 收集:自由互联 发布时间:2021-06-24
一 在服务器端导入cxf的开发包 编写服务端代码,和使用jdk开发一样,启动服务,看到org.eclipse.jetty.server.AbstractConnector doStart 说明使用cxf的服务。 二 编写客户端代码 此次不使用jdk的命

一 在服务器端导入cxf的开发包

编写服务端代码,和使用jdk开发一样,启动服务,看到 org.eclipse.jetty.server.AbstractConnector doStart 说明使用cxf的服务。

二 编写客户端代码

此次不使用jdk的命令wsimport,也可以使用wsdl2java命令,在cxf的开发文档里apache-cxf-2.5.9\bin,由于没有配置环境变量,要写wsdl2java的全路径,如果报错,需要加参数

-frontend jaxws21,   格式是:wsdl2java的全路径 -frontend jaxws21 wsdl文档的路径

wsimport 和 上面的那种方式都可以用来生成客户端代码。


SEI接口:

package com.ws;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public interface SayHelloWS {
	@WebMethod
	public String sayHello(String str);
}

SEI接口实现:

package com.ws;

import javax.jws.WebService;

@WebService
public class SayHelloWSImpl implements SayHelloWS {

	@Override
	public String sayHello(String str) {
		System.out.println("hello:"+str);
		return "hello:"+str;
	}

}

发布:

package com.ws;

import javax.xml.ws.Endpoint;

public class TestServer {

	public static void main(String[] args) {
		String address="http://192.168.1.101:8889/WS/SayHelloWS";
		Endpoint.publish(address, new SayHelloWSImpl());
		System.out.println("发布成功");
	}

}


客户端代码:

wsdl2java生成部分:

/ws_cxf_client/src/com/ws/ObjectFactory.java
/ws_cxf_client/src/com/ws/package-info.java
/ws_cxf_client/src/com/ws/SayHello.java
/ws_cxf_client/src/com/ws/SayHelloResponse.java
/ws_cxf_client/src/com/ws/SayHelloWS.java
/ws_cxf_client/src/com/ws/SayHelloWSImplService.java


测试代码:

package com.test;

import com.ws.SayHelloWS;
import com.ws.SayHelloWSImplService;

public class TestClient {

	public static void main(String[] args) {
		SayHelloWSImplService factory=new SayHelloWSImplService();
		SayHelloWS ws=factory.getSayHelloWSImplPort();
		String rees=ws.sayHello("tom");
		System.out.println("client:"+rees);
	}

}
网友评论