使用JAXWS快速发布WebService

说起WebService很多人都会觉得很复杂,你可能需要一个axis2或CXF之类的框架,还要做一大堆的配置,不过现在使用JAXWS2.0规范来发布一个web服务已经非常简单了。当然最新的CXF也是JAXWS的实现,我们这里给出的非常简单的小例子只要使用JSE6.0就搞定了(我使用的是JDK6update12版本)。

 

首先编写要发布成服务的类:

package jaxwsserver;

import javax.jws.WebParam;
import javax.jws.WebService;

@WebService()
public class SeManager {
    public String greetings(@WebParam(name="username") String name){
        return "hello"+name;
    }
}

 关键是标注部分。

 

然后还需要生成一些辅助的类,到编译后的class的根目录下运行如下的命令:

wsgen -classpath . jaxwsserver.SeManager

 会在包jaxwsserver.jaxws下生成Greetings.class和GreetingsResponse.class两个类文件。至于内容就不关心它了,确保他们在classpath中就可以了。下面我们写一个小服务器来发布这个web服务:

package jaxwsserver;

import javax.xml.ws.Endpoint;

public class Server {
    public static void main(String[] args){
        Endpoint.publish("http://localhost:9090/se", new SeManager());
    }
}

 运行这个Server类然后再浏览器中访问http://localhost:9090/se?wsdl这个地址看看WSDL:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.1 in JDK 6. -->
<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.1 in JDK 6. -->
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://jaxwsserver/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://jaxwsserver/" name="SeManagerService">
	<types>
		<xsd:schema>
			<xsd:import namespace="http://jaxwsserver/" schemaLocation="http://localhost:9090/se?xsd=1"/>
		</xsd:schema>
	</types>
	<message name="greetings">
		<part name="parameters" element="tns:greetings"/>
	</message>
	<message name="greetingsResponse">
		<part name="parameters" element="tns:greetingsResponse"/>
	</message>
	<portType name="SeManager">
		<operation name="greetings">
			<input message="tns:greetings"/>
			<output message="tns:greetingsResponse"/>
		</operation>
	</portType>
	<binding name="SeManagerPortBinding" type="tns:SeManager">
		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
		<operation name="greetings">
			<soap:operation soapAction=""/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
	</binding>
	<service name="SeManagerService">
		<port name="SeManagerPort" binding="tns:SeManagerPortBinding">
			<soap:address location="http://localhost:9090/se"/>
		</port>
	</service>
</definitions>

 

看到以上的结果就说明服务发布成功了。是不是很简单呢?

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值