`
alvinqq
  • 浏览: 185395 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Tomcat下发布webservice1

阅读更多
最近接手公司webservice接口的开发,这段时间一直都研究webservice。
看来几个框架,但最终决定还是用jdk6.0自带的注解,用起来比较方便,也很简单。
下面就给大家简单演示一下怎么通过注解webservice,并在tomcat下发布。

新建一个Web工程HelloWorldWS

1》接口:HelloWorld.java(默认为style=document)
package tc;

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

@WebService//注解为webservice
public interface HelloWorld {
	
	@WebMethod//注解方法,公开
	String sayHello(@WebParam(name="name")String name);
}


2》实现类:HelloWorldImpl.java
package tc;

import javax.jws.WebService;

@WebService(endpointInterface="tc.HelloWorld")//指定接口
public class HelloWorldImpl implements HelloWorld{

	public String sayHello(String name) {
		return "Hello: "+name;
	}
}


3》web.xml文件的配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd">
	<listener>
		<listener-class>
			com.sun.xml.ws.transport.http.servlet.WSServletContextListener
		</listener-class>
	</listener>
	<servlet>
		<servlet-name>HelloWorldWS</servlet-name>
		<servlet-class>
			com.sun.xml.ws.transport.http.servlet.WSServlet
		</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>HelloWorldWS</servlet-name>
		<url-pattern>/tc</url-pattern>
	</servlet-mapping>
</web-app>


4》在web.xml同级目录下新建文件:sun-jaxws.xml(用于配置端点)
<?xml version="1.0" encoding="utf-8"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
	<endpoint name="HelloWorldWS" 
			  implementation="tc.HelloWorldImpl"
			  url-pattern="/tc"/>	
</endpoints>


这里可以配置多个端点,且共一个端口

5》利用jdk6.0自带的工具wsgen生成工件
通过命令行操作
cmd
cd 工程目录(HelloWorldWS)/WebRoot/WEB-INF/classes
wsgen -cp . tc.HelloWorldImpl
敲回车
然后在tc目录下会生成工件,存在于jaxws目录下






6》将HelloWorldWS部署到tomcat,然后启动tomcat
注意这里启动会报错,因为还少一些包(JAX-WS)
(我这里就为大家提供,方便大家使用,O(∩_∩)O~)




7》将文件夹JAX-WS2.1.2下的jar包全部拷贝到工程lib目录下,然后再发布,启动tomcat,搞定!




8》在浏览器输入http://localhost:8080/HelloWorldWS/tc?wsdl
就可以得到wsdl描述文件,通过此文件我们就可以生成客户端进行调用了


9》利用jdk6.0自带的工具wsimport生成客户端
通过命令行操作
cmd
wsimport -keep -p client(这个客户端存放的文件夹) http://localhost:8080/HelloWorldWS/tc?wsdl
敲回车,搞定!







10》将client文件夹拷贝到工程的src目录下,建客户端测试类Client.java

package client;

import java.util.List;

import client.HelloWorld
import client.HelloWorldImplService;

public class Client {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		HelloWorldImplServiceservice=new HelloWorldImplService();
		HelloWorld hello=service.getHelloWorldImplPort();
		System.out.println(hello.sayHello("alvinqq"));
     }
}


控制台输出:
Hello: alvinqq




就这么简单,一看大家都会,后面将介绍客户端怎么接收多个返回值问题。

工程也上传了




  • 大小: 79.4 KB
  • 大小: 33.6 KB
  • 大小: 188 KB
  • 大小: 46.3 KB
  • 大小: 45.9 KB
  • 大小: 192.5 KB
  • 大小: 64.6 KB
  • 大小: 34.1 KB
  • 大小: 105.3 KB
分享到:
评论
1 楼 louis0911 2012-03-05  
发布项目的时候就报错。不知道什么原因。。。自己搭的也报错,把您项目运行也报错,不知道是什么原因,新人不太懂,请教您了。O(∩_∩)O谢谢

2012-3-5 13:48:37 com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextInitialized
严重: WSSERVLET11: failed to parse runtime descriptor: java.lang.VerifyError: (class: com/sun/xml/ws/model/RuntimeModeler, method: processRpcMethod signature: (Lcom/sun/xml/ws/model/JavaMethodImpl;Ljava/lang/String;Ljavax/jws/WebMethod;Ljava/lang/String;Ljava/lang/reflect/Method;Ljavax/jws/WebService;)V) Incompatible argument to function
java.lang.VerifyError: (class: com/sun/xml/ws/model/RuntimeModeler, method: processRpcMethod signature: (Lcom/sun/xml/ws/model/JavaMethodImpl;Ljava/lang/String;Ljavax/jws/WebMethod;Ljava/lang/String;Ljava/lang/reflect/Method;Ljavax/jws/WebService;)V) Incompatible argument to function
	at com.sun.xml.ws.server.EndpointFactory.getDefaultServiceName(EndpointFactory.java:356)
	at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(DeploymentDescriptorParser.java:230)
	at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:147)
	at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:108)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3795)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4252)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:927)
	at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:890)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1150)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:448)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:589)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
2012-3-5 13:48:37 org.apache.catalina.startup.HostConfig deployDirectory
严重: Error deploying web application directory HelloWorldWS
java.lang.AbstractMethodError
	at com.sun.xml.ws.util.localization.Localizer.localize(Localizer.java:54)
	at com.sun.xml.ws.util.exception.JAXWSExceptionBase.getMessage(JAXWSExceptionBase.java:82)
	at com.sun.xml.ws.util.exception.JAXWSExceptionBase.toString(JAXWSExceptionBase.java:77)
	at java.lang.String.valueOf(String.java:2827)
	at java.io.PrintWriter.println(PrintWriter.java:710)
	at java.lang.Throwable.printStackTrace(Throwable.java:509)
	at java.util.logging.SimpleFormatter.format(SimpleFormatter.java:72)
	at java.util.logging.StreamHandler.publish(StreamHandler.java:179)
	at java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:88)
	at java.util.logging.Logger.log(Logger.java:472)
	at java.util.logging.Logger.doLog(Logger.java:494)
	at java.util.logging.Logger.logp(Logger.java:694)
	at org.apache.commons.logging.impl.Jdk14Logger.log(Jdk14Logger.java:101)
	at org.apache.commons.logging.impl.Jdk14Logger.error(Jdk14Logger.java:149)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3799)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4252)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:927)
	at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:890)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1150)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:448)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:589)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

相关推荐

    webservice部署tomcat简单例子(客户端和服务端)

    5. **部署到Tomcat**:将这个Web应用打包成WAR文件(例如:hello-web-service.war),然后将它复制到Tomcat的`webapps`目录下。Tomcat会自动解压并部署这个应用。 6. **启动Tomcat**:启动Tomcat服务器,Web服务就...

    eclipse+tomcat+axis下创建WebService

    安装完成后,记得将 Axis 的库文件(位于 axis-1_4\webapps\axis\WEB-INF\lib)复制到 Tomcat 的 common\lib 目录下,以确保 Axis 可以正常工作。 现在,我们可以开始创建 WebService 项目。在 Eclipse 中新建一个...

    CXF+Spring+Tomcat发布WebService

    【标题】"CXF+Spring+Tomcat发布WebService"涉及的是使用Apache CXF框架与Spring框架结合,在Tomcat服务器上部署和消费Web服务的过程。这是一个常见的企业级应用开发场景,特别是对于实现基于SOAP协议的Web服务。...

    myEclipse10+axis2+tomcat6.0发布WebService.pdf

    本文将介绍如何在myEclipse10中使用Axis2插件与Tomcat6.0发布WebService。首先,我们需要了解Axis2是Apache软件基金会的一个开源项目,它是一个Web服务引擎,用于处理Web服务的发布、部署和管理。myEclipse10是一款...

    CXF发布WebService,jboss和tomcat都能发布

    【CXF发布WebService详解】 Apache CXF 是一个开源的Java框架,它允许开发人员创建和部署Web服务。CXF提供了一种简单的方式来构建SOAP(Simple Object Access Protocol)服务器和客户端,使得开发者可以专注于业务...

    myEclipse10+axis2+tomcat6.0发布WebService.docx

    在本教程中,我们将探讨如何在myEclipse10中使用Axis2框架和Tomcat6.0服务器来发布Web服务。 **Axis2** 是Apache软件基金会开发的一个Web服务引擎,它允许开发者创建和部署Web服务。Axis2提供了高性能和灵活性,...

    使用myEclipse,tomcat 和Axis发布webService

    【使用myEclipse,tomcat 和Axis发布webService】教程 在IT行业中,Web服务是一种标准的通信方式,使得不同的应用程序之间能够交换数据。本文将详细介绍如何使用myEclipse集成开发环境,Apache Tomcat服务器以及...

    WebService例子及其如何部署到tomcat上面

    4. **部署应用**:将包含JAR、`web.xml`和其他资源的WAR文件复制到Tomcat的`webapps`目录下。 5. **启动Tomcat**:启动Tomcat服务器,服务就会自动暴露在配置的URL上,客户端可以通过SOAP请求进行调用。 客户端调用...

    Spring+CXF+tomcat开发webservice

    1. 安装并配置Tomcat服务器。 2. 创建Spring配置文件,定义服务bean和CXF的配置。 3. 实现Web服务接口,并使用CXF的注解进行标记,如`@WebService`和`@SOAPBinding`。 4. 将服务部署到Tomcat服务器上,CXF会根据配置...

    tomcat部署webservice程序

    在IT行业中,Web服务是一种基于互联网的标准方法,用于应用程序之间的通信。Web服务的主要技术之一是Web Service(简称WS),...通过合理的规划和实施,可以成功地将Web Service发布到Tomcat,实现跨系统间的高效通信。

    使用myEclipse,tomcat和Axis发布webService.pdf

    ### 使用myEclipse, tomcat和Axis发布WebService详解 #### 一、准备工作: 1. **安装Axis**: - 访问官方网站 [http://ws.apache.org/axis/](http://ws.apache.org/axis/) 下载 Axis 包。 - 本示例中使用的是 `...

    Jersey和Tomcat构建RESTful WebService

    ### Jersey和Tomcat构建RESTful WebService #### RESTful Web服务简介 REST(Representational State Transfer)是由HTTP规范1.0和1.1版的主要作者之一Roy Fielding在其2000年的博士论文中提出的。REST的核心思想...

    java发布webService 步骤

    1. **配置部署文件**:在Tomcat的`webapps`目录下创建一个新的目录,例如`myWebService`,并在其中创建`WEB-INF`子目录。在`WEB-INF`下创建`web.xml`文件,配置Servlet。 ```xml &lt;servlet-name&gt;...

    SpringBoot框架及CXF发布WebService

    1. **服务器端Web服务发布**:CXF允许开发者通过JAX-WS或JAX-RS接口定义服务,然后自动暴露为SOAP或RESTful服务。SpringBoot结合CXF,可以轻松将服务发布到内嵌的Servlet容器中。 2. **客户端Web服务调用**:CXF还...

    webservice简单例子,Tomcat

    4. **部署服务**: 将服务的WAR文件(Web应用归档文件)或者直接将编译后的Java类和相关的配置文件放入Tomcat的webapps目录下。Tomcat会自动加载并启动Web服务。 5. **创建客户端**: 使用Axis1的wsdl2java工具,同样...

    利用Myeclipse发布webservice

    利用Myeclipse中的JAX-WS发布webservice十分方便,直接部署tomcat即可完成webservice的发布。

    CXF框架发布webservice

    首先,"5-采用CXF框架发布webservice.avi"这个视频很可能详细介绍了使用CXF的基本步骤。发布一个Web服务通常包括以下过程: 1. **环境准备**:确保你的开发环境中已经安装了Java SDK和Maven或Gradle等构建工具,...

    axis2发布webservice

    Axis2 在默认情况下可以热发布 WebService,也就是说,将 WebService 的.class 文件复制到 pojo 目录中时,Tomcat 不需要重新启动就可以自动发布 WebService。 Axis2 的热更新 Axis2 在默认情况下虽然是热发布,但...

    Java-tomcat-axis2开发webservice返回json数据

    标题“Java-tomcat-axis2开发webservice返回json数据”涉及的是使用Java、Tomcat服务器以及Axis2框架来创建Web服务,并返回JSON格式的数据。这是一个常见的技术组合,用于构建RESTful API或者提供服务化接口。下面...

Global site tag (gtag.js) - Google Analytics