Webservice测试从头来

时间:2022-01-09 09:01:38

一、写WebService

  建立java project

  建立数据类包 com.parameters.zz

    新建Person类     

package com.parameters.zz;

public class Person {
private String name;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
} }

  新建服务类包 com.service.zz

    新建暴露接口类 ISayHello

      

package com.service.zz;

import javax.jws.WebService;

import com.parameters.zz.Person;

@WebService
public class ISayHello {
private static final String SALUTATION = "Hello,"; public String getGreeting(Person p) {
String word="";
if(null!=p.getName()&&""!=p.getName().trim()){
if(null!=p.getSex()){
if("male".equalsIgnoreCase(p.getSex())){
word=SALUTATION+"Mr."+p.getName();
}
else
word=SALUTATION+"Miss."+p.getName();
}
}
return word;
}
}

    新建启动该服务类 ISayHelloService

package com.service.zz;

import javax.xml.ws.Endpoint;

public class ServiceRunning {

    public static void main(String[] args) {
System.out.println("SayHello Web Service started.......");
Endpoint.publish("http://localhost:8098/ISayHelloService",
new ISayHello());
}
}

  新建配置文件build.xml

    

<?xml version="1.0" encoding="UTF-8"?>
<project default="wsgen">
<target name="wsgen">
<exec executable="wsgen">
<arg line="-cp ./bin -keep -s ./src -d ./bin
com.service.zz.ISayHello"/>
</exec>
</target>
</project>

  整个项目路径如题: 

Webservice测试从头来

  

  1.2 右键build.xml ,debug as “ant build”(alt+shift+d,q)

  1.3 打开javaee视图,打开wsdl视图

    Webservice测试从头来

至此,Webservice发布成功,地址为 http://localhost:8098/ISayHelloService?wsdl

二、新建测试类

  1.下载cxf2.2.8,并设置好环境变量

    Webservice测试从头来

  2.进入dos,用cxf生成客户端

    命令: wsdl2java –d . http://localhost:8098/ISayHelloService?wsdl  注意空格和“.”

    Webservice测试从头来

    3.用Eclipse新建java project ,在src下导入wsdl生成的客户端

    Webservice测试从头来

  4.编写测试代码:

    Webservice测试从头来

测试代码如果编译通不过,可以换用JAXBElement

  如

Person p = new Person();
JAXBElement<String> name = new JAXBElement<String>(new QName("http://service.com", "name"), String.class, "George");
JAXBElement<String> sex = new JAXBElement<String>(new QName("http://service.com", "sex"), String.class, "male");
p.setName(name);
p.setSex(sex);

  

演示完毕,欢迎转载:lenfengzhizhe,手边星辰

http://www.cnblogs.com/lengfengzhizhe/p/4218207.html