使用NetBeans5.0建立JAX-WS2.0服务
日期:2007年6月23日 作者: 查看:[大字体 中字体 小字体]-
这篇文章主要介绍如何使用NetBeans5.0的内置特征快速建立JAX-WS2.0服务。一旦创建了工程,就可以使用一个命令进行编译(和测试)。NetBeans的新版本具有创建JAX-RPC1.x服务的能力,而JAX-WS2.0仍旧在开发中。使用JAX-WS2.0创建web service的步骤已经进行了简化,使用很少的步骤你就可以将NetBeans中的web应用转化为web service。
前两部分描述获得和设置NetBeans IDE以及JAX-WS代码。第三部分包含了关于创建一个包含web service的web工程以及要用到的示例代码的信息。最后一部分描述了利用这个工程你自己的web service的技巧,也是从WSDL开始创建一个服务的指导。注意JAX-WS2.0需要J2SE5.0。
这篇指南包含以下话题:
1、 设置环境
2、 使用JAX-WS2.0库创建一个新的Web应用
3、 建立一个服务
l 从 Java创建一个服务
4、 测试和调试
l 在Web Services Registry中测试服务
l 创建一个单元测试
l 调试客户端
5、 技巧
l 从WSDL创建服务
l 编写你自己的JAX-WS2.0 Web Services
1、 设置环境
在开始编写代码前,你必须保证已经拥有所有的必须软件。
安装软件
开始之前,你需要在机器上安装以下软件:
l NetBeans IDE 5.0(下载)
l Java SDK 5.0(下载)
对于本文中的例子,只需要两个步骤对NetBeans进行设置。第一步(强烈建议)删除或者重命名包含在Tomcat(内置于NetBeans5.0中)中的JAXP jar文件。这些文件已经包含在了JDK5.0中了(JAX-WS必须)。在NetBeans中这些文件路径是<netbeans_home>/enterprise2/jakarta-tomcat-5.5.9/common/endorsed。你可以修改.jar扩展名以至于不能加载或者完全删除。尽管双份的jar包不应该造成冲突,仍然强烈建议从Tomcat中删除它们。
从http://jax-ws.dev.java.net工程得到JAX-WS2.0二进制版本。从Downloads/Nightly页面下载JAX-WS2.0二进制安装文件,运行“java -jar JAXWS_SI_rrrrmmdd.jar”进行安装。
警告:不要使用最新的官方JAX-WS RI 2.0 EA2版本,因为它和例子要用到的wsimport和wsgen任务不兼容。下一个版本(JAX-WS RI 2.0 EA3)应该可以工作。
为了使Tomcat服务器能够访问JAX-WS2.0库,将所有的jar文件从<jaxws-ri>/lib Directory复制到<netbeans_home>/enterprise2/jakarta-tomcat-5.5.9/common/lib文件夹下。
2、 使用JAX-WS2.0库创建一个新的Web应用
选择File—〉New Project(Ctrl-Shift-N)。在Categories下选择Web,然后选择Web Application。输入“JAX-WS20Project”作为Project Name,指定Project Location目录,确保在Server下拉框中Bundled Tomcat (5.5.9)服务器被选中。
点击Next,然后点击Finish。
点击菜单栏中的Tools,然后选择Library Manager。点击New Library按钮,输入“JAX-WS20”,点击OK。由于在New Library中ClassPath打开着,点击Add JAR/Folder,从<jaxws-ri>/lib文件夹下选择所有的jar文件。
JAX-WS20 jar文件列表:
点击查看大图在Projects试图中打开JAX-WS20工程,在Libraries节点打开Add Library。选择JAX-WS20库,点击Add Library按钮。
正常情况下,所有的jar文件在编译过程中都会被放置在web工程的war文件中(WEB-INF/lib文件夹下)。因为我们已经把这些jar文件复制到Tomcat服务器中了,所以就不需要再作为可发布的war包的一部分了。
为了减小可发布war包的大小,我们将JAX-WS20库从war包中排除,通过去掉对Libraries节点→Properties对话框中Package复选框的选择。
不选择Package复选框:
点击查看大图点击OK。
JAX-WS20Project就完成了创建一个JAX-WS20服务的准备工作了。
3、 建立一个服务
从Java创建一个服务
增加服务类。在Projects视图中右键点击JAX-WS20Project节点,选择New和Java Class。输入“ServiceImpl”到Class Name栏中,“my.sample.server”到Package栏中,点击Finish。实现一个web service hello(java.lang.String)操作,利用JAX-WS2.0注释指定portType名称、服务名称和目标命名空间:
package my.sample.server;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.WebMethod;
/**
* A simple java class that will become a web service.
*/
@WebService(name="Hello", serviceName="HelloService", targetNamespace="http://example.com")
public class ServiceImpl {
@WebMethod
public String hello(@WebParam(name="name") String s) {
System.out.println("Service received: " + s);
return "Hello "+s;
}
}编译(F9)ServiceImpl类。
警告:为了使注释能够支持,JAX-WS20Project中的Source Level应该设置为1.5(在JAX-WS20Project节点调用Properties动作):
点击查看大图修改在Web Pages/WEB-INF文件夹下的发布描述符(web.xml),指定JAX-WS servlet类和ServletContextListener:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<servlet>
<servlet-name>my_service</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>my_service</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
</welcome-file-list>
</web-app>在Web Pages/WEB-INF目录下创建sun-jaxws.xml文件(在WEB-INF节点下创建新的XML文档,在File Name栏中输入sun-jaxws)。sun-jaxws.xml文件被JAX-WS运行时用到,并且指定了服务终端实现类和相对URL:
<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'>
<endpoint
name='Hello'
implementation='my.sample.server.ServiceImpl'
url-pattern='/hello'/>
</endpoints>最后一不是添加下面的xml片段到JAX-WS20Project/build.xml文件。为了编辑工程的build.xml文件,你可以使用菜单栏中的File→Open File或者打开Files选项卡而不是Projects,打开JAX-WS20Project节点,双击build.xml。这个target在编译服务类后将要被NetBeans调用,却是在创建war文件前。wsgen ant任务将会创建服务需要的JAXB和JAX-WS文件。关于wsgen工具的更多信息参见JAX-WS文档。
<!-- Overrides build-impl.xml target to create the server
artifacts that will be included in the war file. -->
<target name="-pre-dist">
<taskdef name="wsgen" classname="com.sun.tools.ws.ant.WsGen">
<classpath path="${javac.classpath}"/>
</taskdef>
<wsgen
debug="true"
keep="true"
destdir="build/web/WEB-INF/classes"
resourcedestdir="build/web/WEB-INF/classes"
sei="my.sample.server.ServiceImpl">
<classpath>
<pathelement path="${javac.classpath}"/>
<pathelement location="${java.home}/../lib/tools.jar"/>
<pathelement location="build/web/WEB-INF/classes"/>
</classpath>
</wsgen>
</target>为了创建和启动服务,从菜单栏中选择Run和Run Main Project,或者使用快捷键F6。作为可选的(但是很有帮助)步骤,右键点击工程名称,选择Properties。选择“Run”节点,在右面的“Relative URL”栏中输入“/hello”。通过设置这个值,当你运行这个工程时,NetBeans会在浏览器中产生“http://localhost:8084/JAX-WS20Project/hello”地址。这就允许你在发布服务时进行确认,并且如果愿意你也可以查看wsdl文件。你可以修改服务类,只需要点击F6重新编译和发布服务,就可以看到在wsdl中发生了什么变化。
正常情况下,hello服务信息应该在浏览器窗口中出现。这就标志着服务发布成功。
端口名称
状态
信息
Hello
活动(ACTIVE)
地址:http://localhost:8084/JAX-WS20Project/hello
WSDL:http://localhost:8084/JAX-WS20Project/hello?wsdl
端口 QName:{http://example.com}HelloPort
- [1] [2] [3] [4] [5] [6] 下一页
-
- 使用NetBeans5.0建立JAX-WS2.0服务 相关文章:
- ·使用NetBeans5.0建立JAX-WS2.0服务
- 使用NetBeans5.0建立JAX-WS2.0服务 相关软件
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:使用NetBeans 5.0和GlassFish建立JAX-WS 2.0服务
下一篇:Spring中的持久性
精品推荐
热点TOP10
- ·3D编程指南第五部分:使用M3G渲染heightmap地形
- ·Servlet简介(二)
- ·J2EE入门教程之一
- ·3D数学知识简介
- ·开源密码管理软件
- ·使用Oracle JDBC驱动
- ·Servlet简介(一)
- ·经典飞机游戏代码S60
- ·通用联接框架(GCF)连接类型使用总结
- ·使用platformRequest()自动更新MIDlet套件
- ·利用Jsp+Taglib+JavaBean快速构建动态数据库查询模板
- ·JBoss文档(二)??JBoss开发、打包、部署
- ·MIDP 2.0安全机制 与 MIDlet 数字签名
- ·EJB 3.0简介
- ·介绍J2ME可选包WMA(JSR120)
- ·使用NetBeans5.0建立JAX-WS2.0服务
- ·从自定义字节数组创建图片
- ·Petstore源码追踪记
- ·JSP轻松入门(一)
- ·KVM的扩展
