【问题标题】:How to manually deploy a web service on Tomcat 6?如何在 Tomcat 6 上手动部署 Web 服务?
【发布时间】:2011-01-31 11:28:18
【问题描述】:

我正在学习如何使用 Java 开发 SOAP Web 服务。

到目前为止,我一直在关注这个优秀的教程

http://web.archive.org/web/20120626005333/http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/

一切顺利,我的 Web 服务在命令行中使用它的嵌入式服务器运行,然后在 NetBeans 的帮助下我将它部署在 Tomcat 上。

我想知道在 Tomcat 上手动部署它的步骤,以便了解它是如何完成的,因为我不喜欢依赖 IDE。

我的意思是,我想知道如何通过命令行和文本编辑器完成所有操作。

我还找到了解释如何手动将 servlet 部署到 Tomcat 的链接,

http://linux-sxs.org/internet_serving/c292.html

但我找不到任何说明如何部署 Web 服务的文章。

非常感谢。

【问题讨论】:

  • 由于某种原因,可能是愚蠢的oracle在切换域后没有维护所有资源,发布的链接不再起作用。您可以点击以下链接。可能不如上述有用,但肯定非常好。 java-forums.org/blogs/web-service/…
  • @Bagira 是的,有大量 Sun 的网页没有正确迁移。但是对于这种情况,可以使用Wayback Machine。我更新了 OP 的链接以指向来自 Wayback Machine 的存档页面。

标签: java web-services tomcat deployment jax-ws


【解决方案1】:

如何手动构建 jax-ws Web 服务并将其部署到 tomcat

我试图弄清楚如何手动构建和部署一个用于学习 pourposes 的网络服务。

我从这篇优秀的文章开始

http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/ (新网址:http://www.oracle.com/technetwork/articles/javase/jax-ws-2-141894.html

这个想法是只使用记事本和命令行来完成整个事情。

我能实现的唯一方法是使用 netbeans 部署一个 Web 服务,然后在 \dist\.war 中查看 war 生成的文件(它只是一个 zip 文件,你可以用 7zip 打开它)

如果有人感兴趣并出于文档目的,我会留下这个......

如果有人知道更简单的方法,请告诉我!!!

测试于:

C:\tomcat6\bin>version
Server version: Apache Tomcat/6.0.26
Server built:   March 9 2010 1805
Server number:  6.0.26.0
OS Name:        Windows XP
OS Version:     5.1
Architecture:   x86
JVM Version:    1.6.0_18-b07
JVM Vendor:     Sun Microsystems Inc.

感谢

sas

1。创建以下目录c:\java\src\ws

2。创建以下文件c:\java\src\ws\Adder.java

// c:\java\src\ws\Adder.java
package ws;
import javax.jws.WebService;

@WebService
public class Adder {
 public double add( double value1, double value2 ) {
  return value1 + value2;
 }
}

3。站在c:\java\src\ execute

c:\java\src> javac ws\Adder.java

文件c:\java\src\ws\Adder.class will be generated

4。使用以下文件创建以下目录结构

c:\tomcat6\webapps\adder_ws

META-INF
  context.xml
WEB-INF
  classes
    ws
      Adder.class
  lib
    activation.jar
    webservices-api.jar
    webservices-extra.jar
    webservices-extra-api.jar
    webservices-rt.jar
    webservices-tools.jar
  sun-jaxws.xml
  web.xml

5。复制编译好的文件

复制c:\java\src\ws\Adder.classc:\tomcat6\webapps\adder_ws\WEB-INF\classes\ws\Adder.class

6。 c:\tomcat6\webapps\adder_ws\META-INF\context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/adder_ws"/>

7。 c:\tomcat6\webapps\adder_ws\WEB-INF\web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_5.xsd">
    <listener>
        <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>Adder</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>Adder</servlet-name>
        <url-pattern>/add</url-pattern>
    </servlet-mapping>
<!-- not needed
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
-->
</web-app>

8。配置WEB-INF\sun-jaxws.xml

文件:c:\tomcat6\webapps\adder_ws\WEB-INF\sun-jaxws.xml

<?xml version="1.0" encoding="UTF-8"?>
<endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime">
  <endpoint implementation="ws.Adder" name="Adder" url-pattern="/add"/>
</endpoints>

9。复制库

c:\tomcat6\webapps\adder_ws\WEB-INF\lib 中的文件

复制netbeans文件
[netbeans dir]\enterprise\modules\ext\metro\*.*

[netbeans dir]\ide\modules\ext\jaxb\activation.jar

10.重启阿帕奇

关机:c:\tomcat6\bin\shutdown.bat

启动:c:\tomcat6\bin\startup.bat

11.测试

打开网络浏览器并转到http://localhost:8080/adder_ws/add?wsdl 你也可以使用soapui(http://www.soapui.org/)之类的工具来测试web服务

就是这样,我想现在我将看看 eclipses 是如何做到的......

【讨论】:

  • 在一个大多数人只想知道如何通过魔法点击找到解决方案的世界里,很高兴找到其他想首先知道如何使用 vi 和命令行!你接受捐款吗? (开玩笑。)
  • 一点信息。你的解决方案对我有用,但因为我不使用 Netbeans,所以我没有你列出的罐子,不得不使用我从 Metro 网站获得的一组不同的罐子。罐子列表和获取它们的位置在以下问题/答案中。请务必阅读我的评论,因为回答者留下了一个罐子,而且我还提供了下载罐子的链接。 stackoverflow.com/questions/6585948/…
  • 不错的指南,但实际上我遇到了一些问题。我创建了一个 EE 7 /ear 项目,我想要的服务器是 WildFly 8.2,我收到下一个错误:17:34:00,652 INFO [javax.enterprise.resource.webservices.jaxws.server.http](MSC 服务线程 1 -8)WSSERVLET12:JAX-WS 上下文侦听器正在初始化 17:34:00,722 严重 [javax.enterprise.resource.webservices.jaxws.server.http](MSC 服务线程 1-8)WSSERVLET11:无法解析运行时描述符:运行时
【解决方案2】:

这是另一篇有用的文章

这有点回答我自己的问题

http://java.dzone.com/articles/jax-ws-deployment-five-minute

【讨论】:

    【解决方案3】:

    以下文章提供了手动构建和部署 JAX-WS Web 服务的分步指南。它使用 Ant 作为构建工具。

    Building JAX-WS Web service

    【讨论】:

      【解决方案4】:

      我希望 web 服务和 servlet 的可部署性相同。即,.war 文件。所以你应该能够以同样的方式部署它。

      【讨论】:

      • 好吧,我只需要找出如何将整个内容放入战争文件中...
      【解决方案5】:

      我看到没有人在 Mkyong.com 上提到过JAX-WS Tutorials

      在“JAX-WS 教程”页面上的“Tomcat 中的 JAX-WS 安全性”部分,有一个简短的、带有图片的教程,正是 OP 想要的:
      Deploy JAX-WS web services on Tomcat

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-05
        • 1970-01-01
        • 2023-03-30
        • 1970-01-01
        • 2017-10-24
        • 2010-12-16
        • 1970-01-01
        相关资源
        最近更新 更多