Java中WebService实例

Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。

Web Service的关键技术和规则:

1.XML:描述数据的标准方法.

2.SOAP:表示信息交换的协议(简单对象访问协议).

3.WSDL:Web服务描述语言.

4.UDDI:通用描述、发现与集成,他是一种独立于平台,基于XML语言的用于在互联网上描述商务的协议。

 

一、利用JDK web服务api实现,这里使用基于SOAP message的Web Service:

1.首先创建一个Web Services项目,作为Web services Endpoint.

2.创建一个HelloService.Java

 

package com.yjpeng.hello;

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.xml.ws.Endpoint;

@WebService
public class HelloService {
	
	@WebMethod
	public String sayHello(String message){
		return "Hello ," + message;
	}
	
	public static void main(String[] args) {
		//create and publish an endPoint
		HelloService hello = new HelloService();
		Endpoint endPoint = Endpoint.publish("http://localhost:8080/helloService", hello);
	}
} 

 

3.使用apt编译HelloService.java(例如: apt -d bin(bin存放编译后的文件目录) scr/com/yjpeng/hello/HelloService.java)后,会生成jaxws目录。

4.使用java com.yjpeng.hello.HelloService执行HelloService.java文件,在浏览器中输入http://localhost:8080/helloService?wsdl出现如下图

 

 5.使用wsimport命令生成客户端:wsimport -p com.yjpeng.webservice -keep http://localhost:8080/helloService?wsdl这时会在当前目录中生成如下文件:

 

6.编写好客户端文件HelloClient.java

package com.yjpeng.hello;

 

import com.yjpeng.webservice.HelloServiceService;

 

public class HelloClient {

public static void main(String[] args) {

HelloServiceService helloServiceService = new HelloServiceService();

com.yjpeng.webservice.HelloService helloService = helloServiceService.getHelloServicePort();

System.out.println(helloService.sayHello("你好"));

}

 

}

 

运行结果在控制台输出 hello,你好  证明利用JDK web服务API实现web service成功!

 

二 在Java Web项目中开放一个webservice接口实例

1.引入需要的jar包 

2.创建一个接口类IAddNumbers.java

 

package com.yjpeng.webservice;

public interface IAddNumbers {
	public int addNumbers(int a, int b);
}

 3.创建一个AddNumberImpl.java实现IAddnumbers.java接口类

 

 

package com.yjpeng.webservice;

import javax.jws.WebService;

import com.sun.xml.ws.transport.http.servlet.WSServlet;

@WebService(targetNamespace="http://webservice.yjpeng.com", serviceName="AddNumberImplService",
		portName="AddNumberImpl")
public class AddNumberImpl implements IAddNumbers {
	public int addNumbers(int a, int b) {
		return a + b;
	}
}

4.在WEN-INF目录下创建一个sun-jaxws.xml文件 

 

 

<?xml version="1.0"?>
<endpoints version="2.0"
  xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime">
  <endpoint name="AddNumberImpl" 
     implementation="com.yjpeng.webservice.AddNumberImpl"
     url-pattern="/addNumberImpl"/>
 </endpoints>
      

 5.在web.xml文件中增加

 

	<servlet>
		<servlet-name>AddNumberService</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>AddNumberService</servlet-name>
		<url-pattern>/addNumberImpl</url-pattern>
	</servlet-mapping>
	<listener>
		<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
	</listener>

 6.部署web项目 启动相应部署服务器。访问http://localhost:8080/TestJaxWebService/addNumberImpl?wsdl 这样每次启动web服务器就开放了一个web service的接口。

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值