Java 获取安装在我的Websphere服务器中的EJB无状态bean中的主机和端口

Java 获取安装在我的Websphere服务器中的EJB无状态bean中的主机和端口,java,ejb,websphere,stateless,inetaddress,Java,Ejb,Websphere,Stateless,Inetaddress,我有一个EJB无状态Bean,由Websphere内部的调度器自动执行。我的EJB安装在Websphere中。在我的EJB中,我想向其他应用程序(在同一服务器中)公开的Web服务发出http请求。我尝试只使用相对路径,因为这是我通常在应用程序之间发出请求的方式,但在我的bean中,我不知道如何获取主机名和端口来构建URL 我通过以下操作获得了主机(ip): InetAddress.getLocalHost().toString(); 但我还需要端口号。问题是:如何获取安装EJB应用程序的应用程

我有一个EJB无状态Bean,由Websphere内部的调度器自动执行。我的EJB安装在Websphere中。在我的EJB中,我想向其他应用程序(在同一服务器中)公开的Web服务发出http请求。我尝试只使用相对路径,因为这是我通常在应用程序之间发出请求的方式,但在我的bean中,我不知道如何获取主机名和端口来构建URL

我通过以下操作获得了主机(ip):

InetAddress.getLocalHost().toString();
但我还需要端口号。问题是:如何获取安装EJB应用程序的应用程序服务器(Websphere)的主机和端口号?这可能吗

这段代码是我尝试发出请求的方式,但这不起作用,因为我需要完整路径:

URL url = new URL("/MyOtherAppName/myservice");         
connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

connection.setRequestProperty("Content-Length", 
    Integer.toString(urlParameters.getBytes().length));
connection.setRequestProperty("Content-Language", "en-US");  

connection.setUseCaches(false);
connection.setDoOutput(true);
-编辑1----

我认为userGas的方法很好,并且使我的应用程序更易于配置

我按照本指南实施URL提供程序方法:


我建议采用不同的方法,而不是让服务器主机和端口使用URL资源,然后在EJB中获取它。它将更便于跨服务器移植,并且在您将服务转移到其他地方时也更灵活

通过app server中的控制台定义URL,并在EJB中使用
@Resource
注释,如下所示:

@Resource(name="serviceURL", lookup="url/myurl")
URL myURL;

我建议采用不同的方法,而不是让服务器主机和端口使用URL资源,然后在EJB中获取它。它将更便于跨服务器移植,并且在您将服务转移到其他地方时也更灵活

通过app server中的控制台定义URL,并在EJB中使用
@Resource
注释,如下所示:

@Resource(name="serviceURL", lookup="url/myurl")
URL myURL;

您知道,对于仅存储URL,您不必实现URL提供程序,只需使用已有的
默认URL提供程序
,并将新URL添加为资源?您知道,对于仅存储URL,您不必实现URL提供程序,但是只需使用已有的
默认URL提供程序
,然后添加新的URL作为资源?