【问题标题】:How to deploy an Axis-generated soap service to an embedded Tomcat instance如何将 Axis 生成的 soap 服务部署到嵌入式 Tomcat 实例
【发布时间】:2009-10-17 08:18:38
【问题描述】:

我从 WSDL 生成了一个 Soap 服务,现在我需要将它部署到使用嵌入式 tomcat 的现有应用程序(即我有一个扩展 TomcatServeletContainer 的类和一个实例化该类并启动服务器的主类)。

我看到了许多关于如何使用 WAR 或 WSDD 将轴服务部署到独立 tomcat 的示例,但我自己不知道如何将它们连接在一起。我假设我必须在 web.xml 中定义一个 serverlet 并提供一些其他的粘合剂。任何帮助或指向适当文档的指针将不胜感激。

谢谢! -卡尔

【问题讨论】:

    标签: web-services tomcat soap axis deployment


    【解决方案1】:

    您是否能够使其正常工作? 我一直在尝试使用 maven 构建一个 web 服务(在一个包含轴 jars(w/dependencies)+server-config.wsdd 的独立战争文件中)。我真的不想对 AdminClient 进行任何调用(意味着不安装 Axis)。

    我已经使用 axistools-maven-plugin 从 WSDL 生成了服务器端源,在我部署服务之前一切似乎都正常。 http://localhost:8080/myApp/services 给了我服务的名称和两个公开的方法。但是单击 wsdl 链接会显示一条 Axis 错误消息,告诉我“无法生成 WSDL!此位置没有 SOAP 服务”。

    是否可以使用 maven 以这种方式构建独立的 Axis Web 服务?

    【讨论】:

    【解决方案2】:

    是的,您需要以与 WAR 相同的方式构建应用程序,但以编程方式通知 tomcat 您爆炸的战争生活在哪里。

    其他一切都应与标准 servlet 规范相同。

    【讨论】:

    • 我明白了,这让事情变得更清楚了。我在这里找到了我认为的相关文档:ws.apache.org/axis/java/install.html 查找“高级安装”,您可以扩展 AxisServlet 类来实现您的服务,然后从 web.xml 复制该类的配置,但让它指向您的类。一旦我得到它的工作,我会尝试为后代提供例子。
    • 另一个很棒的网址:
      ibm.com/developerworks/webservices/library/ws-deployjava.html
      在“在tomcat上部署Axis”部分下,它解释了您可以使用“标准方法”进行部署,调用adminclient等,然后捕获它生成的 service-config.wsdd 文件并将其放入您的战争中(或将其部署到您正在运行的实例中)。
      我调用了以下命令: java -cp org.apache.axis.client.AdminClient -lhttp://host/axis/services/AdminService /path/to/deploy.wsdd
      然后将生成的 server-config.wsdd 放到我的 WEB-INF 目录中。
    猜你喜欢
    • 1970-01-01
    • 2015-03-23
    • 2019-08-05
    • 1970-01-01
    • 2021-10-26
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多