是否可以将GlassFish 2配置为仅从某个特定端口访问**网络服务?

时间:2010-11-30 15:30:52

标签: web-services configuration glassfish

目前,我们在端口80上的域中提供一些Web应用程序。可以从Internet访问此端口。

现在应该部署一些EJB,它们使用@WebMethod注释将它们的一些方法公开为webservices。这些不应该来自(公共)端口80的accessibe,而只能来自端口8000,只能从内部网络访问。

我设置了一个名为“internal”的新虚拟服务器,它使用侦听端口8000的http侦听器:

<virtual-server hosts="${com.sun.aas.hostName}" http-listeners="http-listener-3" id="internal" log-file="${com.sun.aas.instanceRoot}/logs/server.log" state="on">
          <property name="sso-enabled" value="false"/>
          <property name="docroot" value="${com.sun.aas.instanceRoot}/docroot"/>
          <property name="accesslog" value="${com.sun.aas.instanceRoot}/logs/access"/>
</virtual-server>

<http-listener acceptor-threads="1" address="0.0.0.0" blocking-enabled="false" default-virtual-server="internal" enabled="true" family="inet" id="http-listener-3" port="8000" security-enabled="false" server-name="" xpowered-by="false">
          <property name="proxiedProtocols" value="ws/tcp"/>
</http-listener>

然后,我通过设置虚拟服务器属性将此虚拟服务器分配给托管服务的企业应用程序。

<application-ref disable-timeout-in-minutes="30" enabled="true" lb-enabled="false" ref="myapp" virtual-servers="internal"/>

现在可以在端口80和8000上使用Web服务,但是需要的是它们仅在端口8000 上可用,而不是从80开始。有没有办法在GlassFish 2中实现这一点使用单个域名?或者必须使用第二个域?

1 个答案:

答案 0 :(得分:0)

您需要将webMethods拉出来并将它们放入自己的应用中。然后,当您部署应用程序时,您可以管理(目标选项卡)他们最终使用的服务器/虚拟服务器。