MyEclipse6.5上基于JAX-WS开发Webservice
2016-02-18 17:27
639 查看
JAX-WS(Java API for XML-Web Services)
环境说明:
MyEclpose 6.5 blue Milestone-1
jdk 1.6.0_15
tomcat 6.0
创建并发布服务器端应用
1.新建web service project。
设置如下图。
2.建立一个实现类,代码如下:
package
net;
public
class
addImpl {
public
double
add(
double
num1,
double
num2){
return
num1
+
num2;
}
}
这里只需要实现类,不再像XFIRE还需要一个接口。
ps:Web服务可用单个Java类的实现,但是最好是用“接口+实现”的方式来实现3.建立web service
选择工程名,点击工具栏的new web service按钮。
然后如下配置:
接着(在JAVA BEAN中输入实现类的名称,选择generate wsdl in project):
点击finish后包中多出一个该实现类的代理类addImplDelegate.java
4.导入包
工程-属性-build path-add library-myeclipse libraries导入以下两个包:
如果缺少这两个包,tomcat启动时会出现以下错误:
严重: Error configuring application listener of
class
com.sun.xml.ws.transport.http.servlet.WSServletContextListener
java.lang.ClassNotFoundException: com.sun.xml.ws.transport.http.servlet.WSServletContextListener
5.启动tomcat,验证并获取WSDL文件
启动tomcat后在浏览器中输入http://localhost:8080/jaxws_src/addImplPort并点击页面中的链接查看WSDL文件,如果该文件能正确显示证明服务器端大功告成。
wsdl文件的uri是http://localhost:8080/jaxws_src/addImplPort?wsdl(你可能会问URI中的addImplPort从何而来,其实这个名字由图4中的Services port设定)
ps:在web.xml中有如下类容,可看出这个/addImplPort的作用
代码
<
servlet
>
<
description
>
JAX-WS endpoint - addImplService
</
description
>
<
display-name
>
addImplService
</
display-name
>
<
servlet-name
>
addImplService
</
servlet-name
>
<
servlet-class
>
com.sun.xml.ws.transport.http.servlet.WSServlet
</
servlet-class
>
<
load-on-startup
>
1
</
load-on-startup
>
</
servlet
>
<
servlet-mapping
>
<
servlet-name
>
addImplService
</
servlet-name
>
<
url-pattern
>
/addImplPort
</
url-pattern
>
</
servlet-mapping
>
创建客户端调用:
(不要关闭TOMCAT啊,不然
。。。。。)
1.新建java project,建立一包(包名安需求)net.
2.选择包点new web services client(参照本文的第二张图)
ps:有别与xfire,客户端不一定是服务端相同类型的web services client,可以是一个普通的工程也OK!!
3.指定wsdl的URI或wsdl的文件路径(见上)。
程序在net包中生成一些类如图:
ps:图中的add.java是一个javabean来,聪明的你应该知道它有啥用了吧!!
4.新建一个测试类:
package
com;
import
net.AddImplDelegate;
import
net.AddImplService;
public
class
test {
public
static
void
main(String[] args) {
AddImplService service
=
new
AddImplService();
AddImplDelegate d
=
service.getAddImplPort();
double
result
=
d.add(
15.6
,
12.5
);
System.out.println(result);
}
}
环境说明:
MyEclpose 6.5 blue Milestone-1
jdk 1.6.0_15
tomcat 6.0
创建并发布服务器端应用
1.新建web service project。
设置如下图。
2.建立一个实现类,代码如下:
package
net;
public
class
addImpl {
public
double
add(
double
num1,
double
num2){
return
num1
+
num2;
}
}
这里只需要实现类,不再像XFIRE还需要一个接口。
ps:Web服务可用单个Java类的实现,但是最好是用“接口+实现”的方式来实现3.建立web service
选择工程名,点击工具栏的new web service按钮。
然后如下配置:
接着(在JAVA BEAN中输入实现类的名称,选择generate wsdl in project):
点击finish后包中多出一个该实现类的代理类addImplDelegate.java
4.导入包
工程-属性-build path-add library-myeclipse libraries导入以下两个包:
如果缺少这两个包,tomcat启动时会出现以下错误:
严重: Error configuring application listener of
class
com.sun.xml.ws.transport.http.servlet.WSServletContextListener
java.lang.ClassNotFoundException: com.sun.xml.ws.transport.http.servlet.WSServletContextListener
5.启动tomcat,验证并获取WSDL文件
启动tomcat后在浏览器中输入http://localhost:8080/jaxws_src/addImplPort并点击页面中的链接查看WSDL文件,如果该文件能正确显示证明服务器端大功告成。
wsdl文件的uri是http://localhost:8080/jaxws_src/addImplPort?wsdl(你可能会问URI中的addImplPort从何而来,其实这个名字由图4中的Services port设定)
ps:在web.xml中有如下类容,可看出这个/addImplPort的作用
代码
<
servlet
>
<
description
>
JAX-WS endpoint - addImplService
</
description
>
<
display-name
>
addImplService
</
display-name
>
<
servlet-name
>
addImplService
</
servlet-name
>
<
servlet-class
>
com.sun.xml.ws.transport.http.servlet.WSServlet
</
servlet-class
>
<
load-on-startup
>
1
</
load-on-startup
>
</
servlet
>
<
servlet-mapping
>
<
servlet-name
>
addImplService
</
servlet-name
>
<
url-pattern
>
/addImplPort
</
url-pattern
>
</
servlet-mapping
>
创建客户端调用:
(不要关闭TOMCAT啊,不然
。。。。。)
1.新建java project,建立一包(包名安需求)net.
2.选择包点new web services client(参照本文的第二张图)
ps:有别与xfire,客户端不一定是服务端相同类型的web services client,可以是一个普通的工程也OK!!
3.指定wsdl的URI或wsdl的文件路径(见上)。
程序在net包中生成一些类如图:
ps:图中的add.java是一个javabean来,聪明的你应该知道它有啥用了吧!!
4.新建一个测试类:
package
com;
import
net.AddImplDelegate;
import
net.AddImplService;
public
class
test {
public
static
void
main(String[] args) {
AddImplService service
=
new
AddImplService();
AddImplDelegate d
=
service.getAddImplPort();
double
result
=
d.add(
15.6
,
12.5
);
System.out.println(result);
}
}
相关文章推荐
- 搭建最简单的spring框架
- JAVA中获取工程路径的方法
- java基础(一)
- Java中的反射机制
- Java导出Excel
- java二维码资料
- java设计模式之——策略模式
- java中的BigDecimal和String的相互转换
- java基础—java的Io操作学习(1)
- java入门
- Java线程池的那点事
- Java核心技术学习笔记之二:Java运算符
- Java代码编译和执行的整个过程
- Java核心技术学习笔记之一:Java的基本程序设计结构
- 【实战Java高并发程序设计 5】让普通变量也享受原子操作
- Struts2-3.struts.xml的action可以简写
- Struts2 OGNL的一个例子
- Spring入门
- Java -Xms -Xmx -Xss -XX:MaxNewSize -XX:MaxPermSize含义记录
- 【练习】String类的trim方法