为java ejb Webservice启用https

时间:2012-01-16 15:20:56

标签: web-services netbeans https ejb

我正在使用ejb 3和glassfish 3.1.1开发一个web服务。我正在使用Netbeans 7.0,并且想知道如何在端口8181上为此Web服务启用https。

我不需要任何身份验证方法,只需通过https确保通信!

THX

阿德姆

1 个答案:

答案 0 :(得分:9)

您需要按照here的说明指定安全连接。实质上,在部署描述符web.xml中,您需要设置:

<security-constraint>
    ...
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

但是NetBeans会为您插入代码:打开web.xml,单击编辑器顶部的“安全”选项卡,然后单击“添加安全约束”按钮。键入名称,在URL模式中写入/ *,设置所有Http方法,并将Confidential指定为运输保证。

如果您没有web.xml,因为您只部署Enterprise Java Bean,请创建一个新的GlassFish描述符glassfish-ejb-jar.xml并像这样填充(或参见here文件层次):

<glassfish-ejb-jar>
  <enterprise-beans>
    <ejb>
      <ejb-name>Hello</ejb-name>
      <webservice-endpoint>
        <port-component-name>Hello</port-component-name>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
      </webservice-endpoint>
    </ejb>  
  </enterprise-beans>/>
</glassfish-ejb-jar>

从现在开始,您的应用程序将使用端口8181.

有关如何在Netbeans Web应用程序中设置安全性的详细信息,请参阅here;有关证书的了解,请参阅here