在 Tomcat 中部署 Axis 2 并在自定义路径中访问您的 Web 服务

Deploy Axis 2 in Tomcat and access your web service in a custom path

我有一个基于 Axis2 的 Web 服务,我部署在 Tomcat.First 我下载 axis2.war 并将它放在 Tomcat 的 webapps folder.It 创建了 axis2 文件夹及其sub-folders.In Axis2 的 WEB-INF 子文件夹,在 services 子文件夹中 我将我的 .aar file.Then 放在我的浏览器中 我转到 http://localhost:8080/axis2。它有一个link服务,里面列出了所有services.Suppose我的服务是HelloWorldService。所以它可以访问的路径是

http://localhost:8080/axis2/services/HelloWorldService

但我不想向全世界透露我的 Web 服务是由 Axis2 驱动的。假设我希望路径为

http://localhost:8080/abc/services/HelloWorldService

怎么做?我是否必须将 axis2 文件夹重命名为 abc。我还在同一个 Tomcat 中部署了一个 Web 应用程序 abc。我是否将 axis2 子文件夹的内容复制到 abc。我试过了,没用。

I also have an web application abc deployed in the same Tomcat. Do I copy content of axis2 sub-folder to abc.

您的思考方向是正确的,是的,您必须将 Axis2.war 的所有内容(不需要 100%,但最好从一开始就这样做)复制到 abc 除了 web.xml.

您必须将 axis2.war/WEB-INF/web.xml 内容与 abc/WEB-INF/web.xml 合并,方法是将以下内容分别复制到 <web-app> XML 标签内。

    <servlet>
        <display-name>Apache-Axis Servlet</display-name>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
        <!--<init-param>-->
        <!--<param-name>axis2.xml.path</param-name>-->
        <!--<param-value>/WEB-INF/conf/axis2.xml</param-value>-->
        <!--<param-name>axis2.xml.url</param-name>-->
        <!--<param-value>http://localhost/myrepo/axis2.xml</param-value>-->
        <!--<param-name>axis2.repository.path</param-name>-->
        <!--<param-value>/WEB-INF</param-value>-->
        <!--<param-name>axis2.repository.url</param-name>-->
        <!--<param-value>http://localhost/myrepo</param-value>-->
        <!--</init-param>-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <display-name>Apache-Axis AxisAdmin Servlet (Web Admin)</display-name>
        <servlet-name>AxisAdminServlet</servlet-name>
        <servlet-class>org.apache.axis2.webapp.AxisAdminServlet</servlet-class>
    </servlet>



<servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/servlet/AxisServlet</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>*.jws</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>AxisAdminServlet</servlet-name>
        <url-pattern>/axis2-admin/*</url-pattern>
    </servlet-mapping>

希望对你有用!如果它不起作用,请更新您的问题,我可以重新调整答案。