上下文#1:
我的电脑上的 glassfish 3.1 服务器。
一个简单的 ejb 部署在服务器上。
在日食(同一台电脑)中:
public class App
{
public static void main(String[] args) throws Exception
{
Properties p = new Properties();
p.setProperty("java.naming.factory.initial","com.sun.enterprise.naming.SerialInitContextFactory");
String jndiname = "java:global/simpleEjb";
Context context = new InitialContext(p);
System.out.println(daoService.sayHello());
}
}
在我的 pom.xml 中:
<dependency>
<groupId>org.glassfish.appclient</groupId>
<artifactId>gf-client</artifactId>
<version>3.1</version>
<scope>system</scope>
<systemPath>C:\Java\glassfish3\glassfish\lib\gf-client.jar</systemPath>
</dependency>
它正在工作。
真实背景:
Glassfish 在另一台机器上的 ubuntu 服务器上运行。
所以在我的应用程序中:
Properties p = new Properties();
p.setProperty("java.naming.factory.initial","com.sun.enterprise.naming.SerialInitContextFactory");
p.setProperty("org.omg.CORBA.ORBInitialHost","10.12.3.93");
p.setProperty("org.omg.CORBA.ORBInitialPort","3700");
- 如果我让我的本地服务器运行:它正在调用我本地服务器上的 ejb !
- 如果我停止我的本地服务器:没有例外,但我的应用程序永远不会结束(挂起查找 - 即使等待超过 10 分钟)。
我还尝试修改我的 pom.xml 替换以前的依赖项:
<dependency>
<groupId>org.glassfish.appclient</groupId>
<artifactId>gf-client</artifactId>
<version>3.1</version>
<type>pom</type>
<scope>compile</scope>
<exclusions>
<exclusion>
<artifactId>tools</artifactId>
<groupId>com.sun</groupId>
</exclusion>
<exclusion>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.core</artifactId>
</exclusion>
</exclusions>
</dependency>
并添加:
<repositories>
<repository>
<id>EclipseLink</id>
<url>http://download.eclipse.org/rt/eclipselink/maven.repo</url>
</repository>
</repositories>
但同样的结果...
我要疯了……我不明白发生了什么。
如果我尝试更改主机 ip:
Connection failure: socketType: IIOP_CLEAR_TEXT; hostname: 10.12.3.94; port: 3700