MyEclipse8.5 基于jax-ws的webservice对象(实体)传递的开发

来源:互联网 发布:mac webpack 编辑:程序博客网 时间:2024/05/17 16:44

之前用过axis2,xfire,这次是用jax-ws开发webservice接口,关于参数为字符串的我就不写了,直接写一个传参为实体的例子:

一.webservice服务端

1.新建一个web service project,并新建一个BookService.java

package com.sidney.bj;public class BookService {public void addBook(Book book){System.out.println("获取到的book--->"+book.toString());}public Book findBook(String bookId){Book book = new Book("123","java编程",100);return book;}}
2.对应的Book.java

package com.sidney.bj;public class Book {private String id;private String name;private int price;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}@Overridepublic String toString() {return "Book [id=" + id + ", name=" + name + ", price=" + price + "]";}public Book() {super();// TODO Auto-generated constructor stub}public Book(String id, String name, int price) {this.id = id;this.name = name;this.price = price;}}
3.生成BookService对应的代理类,这个可以自己写,也可以直接用myeclipse自动生成,这里我直接就自动生成了,步骤如下:

1)new - other - Web Service

2)选择之前新建的工程,并选择java class stategy:

3.选择对应的BookService,点击Finish:

4.项目中会生成BookServiceDelegate.java代理类,sun-jaxws.xml配置文件,并在web.xml中添加对应ws节点:

5.如果要在tomcat下运行,需要加这两个包,Bulid Path-Add Libraries-MyEclipse Libraries:

6.启动tomcat,输入ws地址(配置信息在web.xml里面,可以自己修改):http://localhost:8080/MyWSDemo/BookServicePort?wsdl



二.客户端:

1.新建一个Web Projecct

2.new - other-web service client,关联新建的web项目,点击下一步

3.输入wsdl地址,next,finish,这样客户端就自动生成了:

4.可以看到对应的类都已经生成了,现在来写一个测试类BookServiceTest.java

<pre name="code" class="java">package com.sidney.bj;public class BookServiceTest {/** * 测试demo */public void demo1(){BookServiceService bookServiceService = new BookServiceService();BookServiceDelegate bookServicePort = bookServiceService.getBookServicePort();//Book book = new Book("1223123","c++编程",1231);Book book = new Book();book.setId("123123");book.setName("c++编程");book.setPrice(1231);bookServicePort.addBook(book);}public void demo2(){BookServiceService bookServiceService = new BookServiceService();BookServiceDelegate bookServicePort = bookServiceService.getBookServicePort();//Book book = new Book("1223123","c++编程",1231);//Book book = new Book();//book.setId("123123");//book.setName("c++编程");//book.setPrice(1231);Book book = bookServicePort.findBook("111");System.out.println(book.getId()+";"+book.getName()+";"+book.getPrice());}public static void main(String[] args) {BookServiceTest bookService = new BookServiceTest();bookService.demo1();bookService.demo2();}}


5.运行demo,测试一下:

服务端接收到的数据:

客户端接收的数据:





0 0
原创粉丝点击