使用标准se应用程序测试glassfish EJB

时间:2013-02-05 11:28:04

标签: java glassfish-3 jndi ejb-3.1

上下文#1:

我的电脑上的glassfish 3.1服务器。

服务器上的一个简单的ejb。

在eclipse(同一台电脑)中:

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

1 个答案:

答案 0 :(得分:0)

好的,我得到了解决方案:

我的/ etc / hosts文件中存在“问题”。

有:

myserver 127.0.0.1

我用

代替

myserver 10.12.3.93