1.先创建一个接口
package com;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
@WebService()
@SOAPBinding(style =Style.RPC)
public interface ICalculator {
@WebMethod
int add(int i,int j);
}
注意:jdk1.6u17以下的版本,如果没有@SOAPBinding(style =Style.RPC),就会出错。有两种方法可以解决,一是升级JDK到版本jdk1.6u17或以后;二是加上@SOAPBinding(style =Style.RPC)。
2.实现该接口
package com;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
@WebService(endpointInterface="com.ICalculator")
@SOAPBinding(style =Style.RPC)
public class Calculator implements ICalculator{
public Calculator(){}
@WebMethod(operationName="add", action="urn:Add")
public int add(int i, int j){
int k = i +j ;
System.out.println(i + "+" + j +" = " + k);
return k;
}
}
3.把该实现类发布为服务
package com;
import javax.xml.ws.Endpoint;
public class PubliserSer {
public static void main(String args[]){
Endpoint.publish("http://127.0.0.1:8989/myweb", new Calculator());//new Calculator()指的是实现类
System.out.println("The Server is started");
}
}
4.创建客户端调用该服务
package com;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
public class Test2 {
/**
* @param args
*/
public static void main(String[] args) {
try {
URL url=new URL("http://127.0.0.1:8989/myweb?wsdl");
QName qn=new QName("http://com/", "CalculatorService");//第一个参数指的是包名称,第二个参数是“实现类名+Service”
Service s=Service.create(url,qn);
ICalculator sm=(ICalculator)s.getPort(ICalculator.class);//这里面的ICalculator和@WebService(endpointInterface="com.ICalculator")现对应,必须是接口
System.out.println(sm.add(1, 9));
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
5.相关API说明
(1)Endpoint类的静态方法
publish
public static Endpoint publish(java.lang.String address,
java.lang.Object implementor)
Creates and publishes an endpoint for the specified implementor object at the given address.
The necessary server infrastructure will be created and configured by the JAX-WS implementation using some default configuration. In order to get more control over the server configuration, please use the create(String,Object) and publish(Object) methods instead.
Parameters:
address - A URI specifying the address and transport/protocol to use. A http: URI MUST result in the SOAP 1.1/HTTP binding being used. Implementations may support other URI schemes.
implementor - The endpoint implementor.
Returns:
The newly created endpoint.
Throws:
java.lang.SecurityException - If a java.lang.SecurityManger is being used and the application doesn't have the WebServicePermission("publishEndpoint") permission.
(2).Service类的静态方法
在客户端创建一个webservice服务实例
create
public static Service create(java.net.URL wsdlDocumentLocation,
javax.xml.namespace.QName serviceName)
Creates a Service instance. The specified WSDL document location and service qualified name MUST uniquely identify a wsdl:service element.
Parameters:
wsdlDocumentLocation - URL for the WSDL document location for the service
serviceName - QName for the service
Throws:
WebServiceException - If any error in creation of the specified service.
(3).Service类的静态方法,在客户端得到服务类的代理,然后对其进行操作
getPort
public <T> T getPort(java.lang.Class<T> serviceEndpointInterface)
The getPort method returns a proxy. The parameter serviceEndpointInterface specifies the service endpoint interface that is supported by the returned proxy. In the implementation of this method, the JAX-WS runtime system takes the responsibility of selecting a protocol binding (and a port) and configuring the proxy accordingly. The returned proxy should not be reconfigured by the client.
Parameters:
serviceEndpointInterface - Service endpoint interface.
Returns:
Object instance that supports the specified service endpoint interface.
Throws:
WebServiceException -
* If there is an error during creation of the proxy.
* If there is any missing WSDL metadata as required by this method.
* If an illegal. serviceEndpointInterface is specified.
分享到:
相关推荐
QT C++创建HTTP服务,C++快速简单创建web服务器 QT快速提供Resful接口 C++创建Resful服务 C++快速提供get、post服务 C++实现HTTP服务 搭建HTTP服务 https://blog.csdn.net/weijia3624/article/details/139236610 ...
#### 创建Web服务 一旦实现了基本的服务逻辑,下一步是将其封装成一个Web服务。这一过程通常涉及到以下几个步骤: 1. **使用WebSphere Studio将Java代码转换为Web服务**:通过WebSphere Studio提供的工具将`...
"应用服务器的搭建--创建Web服务器" 本实验报告旨在详细介绍应用服务器的搭建过程,特别是使用 IIS 组件配置 Web 服务器的详细步骤,并进行测试连接。 Experiment Purpose 1. 了解 Windows 服务器的网络组件,...
总结来说,本资源旨在帮助开发者深入了解C#环境下利用.NET Remoting和ASP.NET创建Web服务的技术细节,通过提供的源代码示例,可以加深对这两项技术的理解,提升开发高级Web服务的能力。无论是对于分布式系统的实现,...
在IT领域,创建Web服务是一项基础且至关重要的任务,它涉及到如何通过网络接口提供功能,使得不同的应用程序可以相互通信和交换数据。Web服务通常基于开放标准,如XML(可扩展标记语言)和SOAP(简单对象访问协议)...
【创建Web服务】主题主要涉及的是利用ASP.NET技术构建Web服务的过程及相关的概念。Web服务是一种基于互联网的软件模块,可以被其他应用程序调用,实现跨平台的数据交换和功能共享。以下是这一主题的关键知识点: 1....
二、创建Web服务的步骤 1. 定义服务接口:首先,你需要定义Web服务的接口,这通常是一个Java接口,包含了服务提供的方法。 2. 实现服务类:接着,实现这个接口,编写具体的服务逻辑。 3. 创建WSDL文件:WSDL文件描述...
ASP.NET 创建Web服务的发布和部署是开发过程中不可或缺的一环,它涉及到将服务代码和相关文件上传至Web服务器,使得远程客户端能够访问和调用这些服务。本文将深入讲解这一过程,包括部署步骤、文件结构、发现机制...
在Visual Studio .NET中,创建Web服务项目涉及以下步骤: - 打开Visual Studio .NET,选择"Visual C#项目",然后选择"ASP.NET Web服务"。 - 输入项目名称(例如:WebService1),然后点击"确定"。 - 删除默认的...
【创建Web服务】主题主要涉及ASP.NET中的Web服务开发,包括Web服务的定义、特性、一般结构以及创建过程。Web服务是一种在Web上部署的功能,能够被任何应用程序或服务调用,实现不同系统间的交互。 1. **跟踪与调试*...
学web Service(web服务)和.net remoting必看的一本书 它绝对可以提高你的.net水平,收2分咯! 下完请下第二部分才能解压
其为使用ASP创建WEB服务网的外文文献
创建Web服务(1).ppt
在.NET框架中创建Web服务是一种常见的做法,它允许开发者构建可跨网络调用的服务,以实现不同应用间的通信。本文将详细讲解如何在.NET环境中利用Visual Studio .NET创建一个简单的Web服务,并展示如何实现与数据库的...
1,创建Web服务; 2,测试Web服务; 3,生成服务代码类; 4,生成服务代理程序,即DLL文件; 5,本地Web服务的调用; 6,远程调用Web服务; 7,Web服务的综合应用 注:内附有详细代码。桔子的香味,只有吃了才知道!
接下来,你需要编写代码来创建Web服务的客户端代理。在示例代码中,`WSWrapper.h`和`WSWrapper.cpp`文件定义了一个名为`WSWrapper`的类,该类负责调用Web服务的方法。在`WSWrapper.h`文件中,可以看到`#import`指令...
本主题将探讨如何利用C#创建一个简单的Web服务,而无需依赖于Internet Information Services (IIS)这样的传统Web服务器。 一、C# Web服务基础 C# Web服务通常基于.NET框架的ASMX(ASP.NET Web Services)或WCF...