在我正在工作的项目中,我使用部署描述符 (WSDD) 文件部署了一个 SOAP 服务器。为此,将启动一个网络服务器(例如 tomcat、jetty),然后执行以下命令:
java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd
我需要跳过上述命令以避免调用 Axis AdminClient。是否可以将我的 web 服务部署为 war 文件?
注意:由于其局限性,无法使用带有 JWS 的解决方案。
在我正在工作的项目中,我使用部署描述符 (WSDD) 文件部署了一个 SOAP 服务器。为此,将启动一个网络服务器(例如 tomcat、jetty),然后执行以下命令:
java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd
我需要跳过上述命令以避免调用 Axis AdminClient。是否可以将我的 web 服务部署为 war 文件?
注意:由于其局限性,无法使用带有 JWS 的解决方案。
Stackoverflow 上的其他人已经找到了一种以编程方式配置 Axis的方法。这也可能对你有用。
Axis 项目的集成部分中有一些关于 EngineConfigurationFactory的文档。
如果您使用 Maven 构建,则可以使用maven-wsdd-plugin。
如果您的 WSDL 没有改变(例如,您只是在修复 Web 服务业务逻辑中的错误,或者您正在构建一个 Web 服务以适应给定的 WSDL),您可以跳过 maven 插件。如问题中所述,只需使用 AdminClient 将 Web 服务部署到开发 servlet 容器即可。这将在开发 servlet 容器的 /{axis_context}/WEB-INF 目录中生成一个 server-config.wsdd。复制该 server-config.wsdd 并将其打包到您的战争的 WEB-INF 目录中。当您将战争部署到不同的位置时,您的 Web 服务应该包含在 Web 服务列表中。
使用 Axis 1.4 和 Tomcat 1.7 测试