权限被拒绝,HTTPS ListeningIOReactor遇到了已检查的异常

时间:2014-08-06 10:57:42

标签: wso2

启动WSO2 ELB时,当系统尝试启动传递HTTP和HTTPS侦听器时,我在日志中出现以下错误:

WARN {org.apache.synapse.transport.passthru.PassThroughHttpSSLListener} -  System may be unstable: HTTPS ListeningIOReactor encountered a checked exception : Permission denied {org.apache.synapse.transport.passthru.PassThroughHttpSSLListener}

为什么许可被拒绝?这是文件权限吗?如果是这样,应该将哪个文件/目录更改为哪些设置?或者它完全是另一回事?

这些是axis2.xml中的相关设置:

   <transportReceiver name="http" class="org.apache.synapse.transport.passthru.PassThroughHttpListener">
      <parameter name="port">80</parameter>
      <parameter name="non-blocking"> true</parameter>
      <parameter name="httpGetProcessor" locked="false">org.wso2.carbon.transport.nhttp.api.PassThroughNHttpGetProcessor</parameter>
   </transportReceiver>
   <transportReceiver name="https" class="org.apache.synapse.transport.passthru.PassThroughHttpSSLListener">
        <parameter name="port" locked="false">443</parameter>
        <parameter name="non-blocking" locked="false">true</parameter>
        <parameter name="httpGetProcessor" locked="false">org.wso2.carbon.transport.nhttp.api.PassThroughNHttpGetProcessor</parameter>
        <!--parameter name="bind-address" locked="false">hostname or IP address</parameter-->
        <!--parameter name="WSDLEPRPrefix" locked="false">https://apachehost:port/somepath</parameter-->
        <parameter name="keystore" locked="false">
            <KeyStore>
                <Location>repository/resources/security/wso2carbon.jks</Location>
                <Type>JKS</Type>
                <Password>wso2carbon</Password>
                <KeyPassword>wso2carbon</KeyPassword>
            </KeyStore>
        </parameter>
        <parameter name="truststore" locked="false">
            <TrustStore>
                <Location>repository/resources/security/client-truststore.jks</Location>
                <Type>JKS</Type>
                <Password>wso2carbon</Password>
            </TrustStore>
        </parameter>
        <!--<parameter name="SSLVerifyClient">require</parameter>
            supports optional|require or defaults to none -->
    </transportReceiver>

我更改的唯一设置是端口参数,包括HTTP和HTTPS。其余设置是标准的,因为这是一个测试环境。

提前谢谢。

更新:如果我将端口保留为默认值8280(HTTP)和8243(HTTPS),则没有错误。

2 个答案:

答案 0 :(得分:0)

您可以通过更改wso2_home / repository / conf / carbon.xml中的偏移来更改端口。请参阅wso2 wiki以进一步理解offset的概念。您不必设置任何文件,只需更改偏移量即可更改您想要的其他端口。

实施例。 默认端口偏移量为0,http和https的相应端口为8280和8243.

如果将其更改为1,则http和https的相应端口为8281和8244.

答案 1 :(得分:0)

问题与端口偏移无关。该权限被拒绝引起异常,因为1024以下的端口只能由root打开。 您可以尝试以下解决方案之一:

  1. 您可以使用root用户运行WSO2 ELB。
  2. 如果您使用的是unix操作系统,则可以使用iptables重定向端口,如下例所示:

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

    iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080