`

JAX-WS 2.0, an HelloWorld例子

 
阅读更多
JAX-RPC 1.1,开发人员需要写一个接口类Service Endpoint Interface(SEI),JAX-WS 2.0,开发人员一上来就可以直接写自己的实现类. 通过使用annotations,自动生成SEI和其他一些文件.这样有助于开发人员专注于自己想开发的部分,而不必要地分散精力去维护其他的一些附属文件.

下面通过一个HelloWorld的例子来看看,JAX-WS 2.0 API的应用过程.程序是客户端传给服务端一个名字,经过服务端处理后,返回到客户端并打印出来.

一.环境配置.

1.JDK 5.0下载: http://java.sun.com/j2se/1.5.0/download.jsp

2.Java EE 5.0 App Server.

https://glassfish.dev.java.net/public/downloadsindex.html

本例中测试用了Build 37

下载完毕后请设置一下Path.还有例子中使用的命令对应于Cygwin,如果用DosLinux的话,请适当更改相应的形式.

例子中执行中的命令行以E:/jaxws20为基准,在其下面创造相对应的文件夹.

.编写建立服务端

1.实现类.

package endpoint;

import javax.jws.WebService;

import javax.jws.WebMethod;

@WebService()

public class HelloWorld{

//the implementation class must have a default public constructor

public HelloWorld() {};

@WebMethod(operationName="sayHello", action="urn:SayHello")

public String sayHello(String name){

return "Hello "+ name + "!";

}

}

请注意实现类必须标注WebService(),还必须包括一个default public constructor.

2.编译实现类.

编译前,创造相应文件夹build/classes/service来保存class文件.还请注意命令在同一行.

javac -classpath $GLASSFISH_HOME/lib/javaee.jar -d ./build/classes/service endpoint/HelloWorld.java

3.生成相应文件

E:/jaxws20,执行下面的命令,注意事先生成/build/generated.

$GLASSFISH_HOME/bin/wsgen.bat-cp ./build/classes/service -keep -d ./build/classes/service -r ./build/generated -wsdl endpoint.HelloWorld

通过这个命令,会生成相对应的WSDL文件.

4.打包

4.1 WEB-INF`结构准备

WEB-INF/classes/

WEB-INF/wsdl/

4.2Web.xml

WEB-INF/,编写下面的文件.

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:j2ee="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<description>HelloWorld Service</description>

<display-name>HelloWorldWAR</display-name>

<servlet>

<description>Endpoint for HelloWorld Web Service</description>

<display-name>HelloWorldWebService</display-name>

<servlet-name>HelloWorldPort</servlet-name>

<servlet-class>endpoint.HelloWorld</servlet-class>

<load-on-startup>0</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>HelloWorldPort</servlet-name>

<url-pattern>/HelloWorldService</url-pattern>

</servlet-mapping>

<session-config>

<session-timeout>60</session-timeout>

</session-config>

</web-app>

4.3 拷贝文件

cp -r build/classes/service/endpoint ./WEB-INF/classes/

cp build/generated/* archive/WEB-INF/wsdl/

4.4打包

jar cvf helloworld-webservice.war WEB-INF/

5.配置

先启动服务器,

asadmin.bat start-domain domain1

配置到服务器中,

asadmin.bat deploy --user admin --password adminadmin --host localhost --port 4848 --contextroot helloworld-webservice --upload=true --target server helloworld-webservice.war

三.客户端

1.客户端类.

client/,

package client;

import javax.xml.ws.WebServiceRef;

import endpoint.HelloWorldService;

import endpoint.HelloWorld;

public class WSClient{

@WebServiceRef(wsdlLocation=

"http://localhost:8080/helloworld-webservice/HelloWorldService?WSDL")

static HelloWorldService service;

public static void main(String[] args){

try{

WSClient client = new WSClient();

client.callEndpoint(args[0]);

}catch(Exception e){

e.printStackTrace();

}

}

public void callEndpoint(String name){

try{

HelloWorld port = service.getHelloWorldPort();

System.out.println(port.sayHello(name));

}catch(Exception e){

e.printStackTrace();

}

}

}

2.生成相关文件

在编译客户端类之前, 需要从服务端公开中的WSDL生成相关的文件.

wsimport.bat -keep -d ./build/classes/client http://localhost:8080/helloworld-webservice/HelloWorldService?WSDL

3.编译客户端类

javac-d ./build/classes/client -classpath $GLASSFISH_HOME/lib/javaee.jar/;$GLASSFISH_HOME/lib/appserv-ws.jar/;./build/classes/client client/WSClient.java

四.执行

build/classes/client/,

appclient.bat -mainclassclient.WSClient Duke

你会看到如下反馈

Hello Duke!

分享到:
评论

相关推荐

    JAX-WS2.0 API

    JAX-WS2.0 API

    [Jax-RS] RESTful Java 开发 (Jax-RS 2.0 实现) (英文版)

    [奥莱理] RESTful Java 开发 (Jax-RS 2.0 实现) (英文版) [奥莱理] RESTful Java with JAX-RS 2.0 (E-Book) ☆ 图书概要:☆ Learn how to design and develop distributed web services in Java, using RESTful ...

    Asynchronous Web Service Invocation with JAX-WS 2.0

    Asynchronous Web Service Invocation with JAX-WS 2.0

    jax-ws 2.0文档说明以及源码

    jax-ws webservice类简介开发,包含文档以及源码,谢谢支持!get get get

    设计与开发 JAX-WS 2.0 Web 服务

    通过使用 Java™ API for XML Web Services (JAX-WS) 技术设计和开发 Web 服务,可以带来很多好处,能简化 Web 服务的开发和部署,并能加速 Web 服务的开发。通过此教程,可以了解如何开发将其功能作为 Web 服务公开...

    JAX-WS2.0规范

    The Java API for XML Web Services(JAX-WS) 2.0. Specification: JSR-000224 - Java™API for XML Web Services v. 2.0 (“Specification”). Status: Pre-FCS, Proposed Final Draft

    Developing RESTful Services with JAX-RS 2.0, WebSockets, and JSON

    Written as an easy and practical guide, this book is a crash course on using JAX-RS 2.0, JSON, and WebSockets to develop RESTful services. Who this book is written for Developing RESTful Services with...

    JAX-WS的lib、src和docs

    3.众多元数据(Annotations)会被JAX-WS用来描述Web Services的相关类,包括Common Annotations, Web Services Metadata, JAXB2的元数据和JAX-WS2.0规范自己的元数据. 4.Annotation Processing Tool(APT)是JAX-WS重要的...

    jax-ws webservice demo

    基于jax-ws 实现的web service client和server端的demo程序。 注:如果使用的是 myeclipse 时 server 部署到tomcat 启动的时候会报错 解决办法:找到myeclipse安装目录下的 plugins 目录里 查找 webservices-rt.jar,...

    RESTful Java with JAX-RS 2.0

    RESTful Java with JAX-RS 2.0.pdf

    JAX-WS自学笔记

    本人自学JAX-WS笔记和简单例子,文档标题结构如下: JAX-WS使用教程 1、JAX-WS概述 2、创建Web Service 2.1 从java开始 2.1.1 运行wsgen 2.1.2 生成的WSDL和XSD 2.1.3 目录结构 2.2 从WSDL开始 2.2.1 ...

    JAX-WS 2.2 RI所有相关jar包

    JAX-WS 2.2 RI 所包含的JAR包集合,包含25个JAR包,列表如下: FastInoset.jar gmbal-api-only.jar ha-api.jar javax.annotation.jar javax.mail_1.4.jar jaxb-api.jar jaxb-impl.jar jaxb-xjc.jar jaxws-api...

    RESTful Java with JAX-RS 2.0 无水印pdf

    RESTful Java with JAX-RS 2.0 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者...

    Jax-ws所需要的JAR包

    亲测可用,Jax-ws所需要的JAR包,拷贝到tomcat安装路径的lib里,实现了webservice发布到tomcat,赞!

    MyEclipse8_0中使用 JAX-WS 部署 WebService 实例

    MyEclipse8_0中使用 JAX-WS 部署 WebService 实例 - 外衣 - 博客频道 - CSDN_NET.mht

    metro-jax-ws-master

    The Java API for XML Web Services (JAX-WS) is a Java programming language API for creating web services, particularly SOAP services. JAX-WS is one of the Java XML programming APIs. It's a part of the ...

    webService部署tomcat需要的jax-ws jar包

    webService部署tomcat需要的jax-ws 的完整jar包

    JAX-WS_WebService.rar

    JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用

    RESTful Java with JAX-RS 2.0, 2nd Edition

    RESTful Java with JAX-RS 2.0, 2nd Edition 英文原版

    Jax-WS 简单实例

    Jax-WS的简单实例 Jax-WS的简单实例

Global site tag (gtag.js) - Google Analytics