`

Java6自带的WebService

阅读更多

只需要在一个类上标注@WebService就可以了,当然这个类需要有服务方法,否则会报下面的错误:

Exception in thread "main" com.sun.xml.internal.ws.model.RuntimeModelerException: The web service defined by the class java6.webservice.HelloWorldService does not contain any valid WebMethods.

at com.sun.xml.internal.ws.model.RuntimeModeler.buildRuntimeModel(Unknown Source)

at com.sun.xml.internal.ws.server.EndpointFactory.createSEIModel(Unknown Source)

at com.sun.xml.internal.ws.server.EndpointFactory.createEndpoint(Unknown Source)

at com.sun.xml.internal.ws.api.server.WSEndpoint.create(Unknown Source)

at com.sun.xml.internal.ws.api.server.WSEndpoint.create(Unknown Source)

at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.createEndpoint(Unknown Source)

at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(Unknown Source)

at com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishEndpoint(Unknown Source)

at javax.xml.ws.Endpoint.publish(Unknown Source)

at java6.webservice.HelloWorldService.main(HelloWorldService.java:13)

 

再使用Endpoint.publish()方法发布服务即可。

示例:

import javax.jws.WebService;

import javax.xml.ws.Endpoint;

 

@WebService

publicclass HelloWorldService {

 

public String sayHello(String name) {

return"hello" + name;

}

 

/**

* @param args

*/

publicstaticvoid main(String[] args) {

Endpoint.publish("http://localhost:8080/java6/webservice/HelloWorldService", new HelloWorldService());

}

 

}

这样服务端就写好了。

Endpoint.publish是一个后台线程,一旦发布了就会一直等待处理Web服务的请求。

在浏览器中输入http://localhost:8080/java6/webservice/HelloWorldService?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.6 in JDK 6. 

-->

- <!--

Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. 

-->

- <definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://webservice.java6/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://webservice.java6/" name="HelloWorldServiceService">

- <types>

- <xsd:schema>

<xsd:import namespace="http://webservice.java6/" schemaLocation="http://localhost:8080/java6/webservice/HelloWorldService?xsd=1" />

</xsd:schema>

</types>

- <message name="sayHello">

<part name="parameters" element="tns:sayHello" />

</message>

- <message name="sayHelloResponse">

<part name="parameters" element="tns:sayHelloResponse" />

</message>

- <portType name="HelloWorldService">

- <operation name="sayHello">

<input message="tns:sayHello" />

<output message="tns:sayHelloResponse" />

</operation>

</portType>

- <binding name="HelloWorldServicePortBinding" type="tns:HelloWorldService">

<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />

- <operation name="sayHello">

<soap:operation soapAction="" />

- <input>

<soap:body use="literal" />

</input>

- <output>

<soap:body use="literal" />

</output>

</operation>

</binding>

- <service name="HelloWorldServiceService">

- <port name="HelloWorldServicePort" binding="tns:HelloWorldServicePortBinding">

<soap:address location="http://localhost:8080/java6/webservice/HelloWorldService" />

</port>

</service>

</definitions>

 

 

 

客户端:

使用jdkwsimport命令生成客户端代码:

编写我们调用服务的类:

 

import java6.webservice.client.*;

publicclass HelloWorldClient {

 

/**

* @param args

*/

publicstaticvoid main(String[] args) {

// TODO Auto-generated method stub

HelloWorldServiceService hwss = new HelloWorldServiceService();

java6.webservice.client.HelloWorldService hws = hwss.getHelloWorldServicePort();

String result = hws.sayHello("webservice");

System.out.println(result);

}

 

}

 

 

运行结果:hellowebservice

 

 

分享到:
评论

相关推荐

    JAVA自带实现webservice.docx

    Java自带的JAX-WS(Java API for XML Web Services)框架提供了创建、部署和消费Web服务的能力。本文将详细介绍如何使用Java内置的工具来实现Web服务的开发、启动、部署和调用,并讨论如何设置权限。 **一、所需...

    JAVA6开发WebService JWS示例

    JAVA6 开发WebService JWS示例 WebService 概念 WebService 是一种软件系统,旨在支持跨网络的机器之间相互操作交互。它有一个机器可识别的描述格式,特别是 WSDL。不同的系统之间可以通过 SOAP 消息在规定的方式...

    javax-ws java自带webservice实现方式

    本篇文章将深入探讨Java自带的Web服务实现方式,主要涉及`javax.ws`的相关知识点。 ### 1. Web服务基础 Web服务的核心是SOAP(Simple Object Access Protocol),它是一种XML格式的消息交换协议,用于在不同的应用...

    jdk 6.0 自带webservice实现 实例

    "JDK 6.0 自带 Webservice 实现实例" JDK 6.0 自带 Webservice 实现实例是使用 JDK 自带的功能来实现 Webservice 的一个示例。这个示例展示了如何使用 JDK 6.0 中自带的轻量级 Webservice 服务器来发布一个简单的 ...

    JAVA 的WebService 支持

    - **定义**:JAX-WS(Java API for XML Web Services)是JDK 1.6自带的WebService规范之一,版本为2.1,底层支持为JAXB。 - **演进**:JAX-WS是JAX-RPC(Java API for XML Remote Procedure Call)的后续版本,JAX-...

    java_调用Webservice接口

    在Java中,可以通过JDK自带的WebService API来创建和发布WebService服务端点。下面是一个简单的示例: ```java package Hello; import javax.jws.WebService; import javax.jws.WebMethod; import javax.xml.ws....

    Java WebService入门实例

    Java WebService 是一种基于标准协议(如SOAP,WSDL)的跨平台、跨语言的通信机制,用于构建可互操作的分布式系统。本篇将详细介绍Java WebService的入门实例,包括其工作原理以及如何创建和测试一个简单的...

    maximo6-JAVA调用WEBSERVICE

    使用Apache Axis工具(或者在MAXIMO6环境下,使用weblogic8自带的axis1.1版本)将WSDL文件转换为JAVA客户端代码。在命令行中,指定classpath包括必要的库文件,如axis.jar、axis-ant.jar等,并执行`wsdl2java`命令...

    JAVA的WebService支持讲解

    JAX-WS 2.1版本是JDK 1.6自带的版本,并且底层支持为JAXB(Java Architecture for XML Binding)。JAX-WS的API主要分布在javax.xml.ws包中。 JAXM(Java API for XML Messaging)专注于提供发送和接收XML消息的能力...

    java调用.net webservice时所需的jar包

    4. **wsimport工具**: wsimport是JDK自带的一个命令行工具,用于从WSDL(Web Service Description Language)文件生成Java客户端代理类。这些代理类使得Java代码能够像调用本地方法一样调用Web服务。 5. **所需的...

    Java 访问.Net Webservice 源码,SOAP方式与普通请求方式

    Java 访问.Net Webservice 的源码 ...SOAP请求使用的是java自带的 SOAPXML请求方式,注释超多,全都是手工写,并且测试通过。 普通方式是使用普通请求页面的方式请求,比较简单,但是解析XML比较麻烦。

    Java使用XFire调用WebService接口.docx编程资料

    ### Java使用XFire调用WebService接口 #### 一、引言 随着互联网技术的发展,不同系统之间的通信变得越来越重要。WebService作为一种重要的分布式计算技术,在跨平台、跨语言的服务交互方面发挥着重要作用。本文将...

    java 调用webservice(sp)

    2. **生成客户端 stubs**:使用Java的工具,如`wsimport`(Java SDK自带),或者IDE如Eclipse、IntelliJ的插件,根据WSDL文件自动生成客户端代码(stubs)。这些stubs包含了调用服务所需的所有类和接口。 3. **创建...

    使用RAD写WebService

    4. **编写Java Bean**:快速创建一个简单的Java类,包含需要暴露为WebService的方法,如图2-3所示。 5. **生成WebService**: - 通过右键点击Java类,选择生成WebService的选项,按照图2-4至2-8的步骤操作。 - ...

    java调用webservice.pdf

    总的来说,Java调用WebService提供了多种方式,如JDK自带的API和第三方框架(如XFire、CXF等)。选择哪种方式取决于项目需求,如对性能、易用性、灵活性的需求。JDK API虽然相对基础,但需要手动处理更多细节;而...

    java调用webservice(20211103125800).pdf

    总结,Java调用WebService主要涉及SOAP协议,可以通过JDK自带的API或第三方框架(如XFire)来实现。选择哪种方法取决于项目需求,如灵活性、易用性和性能等因素。无论哪种方式,都需要理解Web服务的基本原理和相关...

    根据wsdl生成webservice服务端(3种方式)

    本文将详细介绍三种基于WSDL生成WebService服务端的方法:使用`wsdl2java`命令、通过SOAPUI工具及借助MyEclipse的Web Service项目功能。 #### 方法一:使用`wsdl2java`命令生成 `wsdl2java`是Apache CXF提供的一个...

Global site tag (gtag.js) - Google Analytics