Axis2“https被禁止”

时间:2012-12-12 21:11:36

标签: https axis2

我是一名SOAP新手,正在构建我的第一个Axis2(v 1.6.2)Web服务。我从一个同事那里复制了一个很小的测试服务,如果我使用http而不是https,它就会运行。我的同事没有这个问题。

我收到的错误是“javax.servlet.ServletException:https被禁止”。我的Axis2.xml文件包含以下内容:

<transportReceiver name="http"  class="org.apache.axis2.transport.http.AxisServletListener">
    <parameter name="port">8080</parameter>
</transportReceiver>

<transportReceiver name="https" class="org.apache.axis2.transport.http.AxisServletListener">
    <parameter name="port">8443</parameter>
</transportReceiver>

我正在测试localhost,JRE 6.1和Tomcat 7.0.25。我的同事(能够使用https)正在使用Websphere 6和Axis2 v.1.6.0,因此这可能是appserver或Axis2版本问题。我们不使用Maven。

我的Tomcat端口为http:8080,https:8443和AJP:8009。

任何帮助解决此https错误都将不胜感激。

更新:尚未解决,但似乎与以下相似或相同: https://stackoverflow.com/questions/13808029/http-is-forbidden-exception-while-accessing-the-axis-2-webservice

2 个答案:

答案 0 :(得分:1)

我发现了原因。对于AxisServlet servlet,我在web.xml文件中有以下条目。我的同事也有参赛作品,但是她的评论已被评论出来了。此条目在服务器启动时导致“找不到文件”错误。评论这个解决了这个问题。

    <init-param>
        <param-name>axis2.xml.path</param-name>
        <param-value>/WEB-INF/conf/axis2.xml</param-value>
    </init-param>

linuxlewis,谢谢你的回复!

答案 1 :(得分:0)

我可以想到两个可能的问题。

  1. 可能位于Web服务前面的IIS / Apache服务器正在使用某种域限制。使用mod_authz_host,您可以根据其域

  2. 限制对特定http模式的访问
  3. 如果您使用Java从服务器访问Web服务,则可能需要在JDK security cacerts文件中安装与Web服务关联的证书。如果您的同事在websphere中工作,他们可能已经安装了证书