能在webligic中 JNDI 到 本地接口 吗

05-10-30 belly

有些 不解.高手指点。

我在JB+Webligic+Mysql下做了一个 CMP,它有 远程和本地接口

但我在 JNDI 它的 远程Home接口时OK,
一到本地接口时就出错了。???
下面是 配置文件。
<weblogic-enterprise-bean>
<ejb-name>Flights</ejb-name>
<entity-descriptor>
<persistence>
<persistence-use>
<type-identifier>WebLogic_CMP_RDBMS</type-identifier>
<type-version>6.0</type-version>
<type-storage>META-INF/weblogic-cmp-rdbms-jar.xml</type-storage>
</persistence-use>
</persistence>
</entity-descriptor>

<jndi-name>FlightsRemote</jndi-name>
<local-jndi-name>Flights</local-jndi-name>

</weblogic-enterprise-bean>


这里是 我的测试类(自己写的)
ackage ejb;

import ejb.com.relation.onetomany.address.*;
import javax.naming.*;
import javax.rmi.PortableRemoteObject;
import java.lang.String;
import java.util.Properties;

public class FlightTestClient1 {
public static void main(String[] args) {
//我把远程Home接口及操作省略了,这样直接些
Flights local=null;
FlightsHome localHome=null;


try {

//get naming context
Context context = getInitialContext();
//look up jndi name 这里(在引用本地Home接口时)出了错,
localHome = (FlightsHome) context.lookup("Flights");



} catch (Exception e) {
e.printStackTrace();
}


}



public static Context getInitialContext() throws Exception {
String url = "t3://zkiller-34e6e35:7001";
String user = null;
String password = null;
Properties properties;
try {
properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, url);
if (user != null) {
properties.put(Context.SECURITY_PRINCIPAL, user);
properties.put(Context.SECURITY_CREDENTIALS,
password == null ? "" : password);
}
return new javax.naming.InitialContext(properties);
} catch (Exception e) {
System.out.println("Unable to connect to WebLogic server at " + url);
System.out.println("Please make sure that the server is running.");
throw e;
}
}

}

belly
2005-10-30 19:16


不好意思。 配置文件没 显示出来。

这里补上

<ejb-name>Flights</ejb-name>
<entity-descriptor>
<persistence>
<persistence-use>
<type-identifier>WebLogic_CMP_RDBMS</type-identifier>
<type-version>6.0</type-version>
<type-storage>META-INF/weblogic-cmp-rdbms-jar.xml</type-storage>
</persistence-use>
</persistence>
</entity-descriptor>

<jndi-name>FlightsRemote</jndi-name>
<local-jndi-name>Flights</local-jndi-name>

belly
2005-10-30 19:20


配置文件还显示不出,再来一次。不好意思


<weblogic-enterprise-bean>
    <ejb-name>Flights</ejb-name>
    <entity-descriptor>
      <persistence>
        <persistence-use>
          <type-identifier>WebLogic_CMP_RDBMS</type-identifier>
          <type-version>6.0</type-version>
          <type-storage>META-INF/weblogic-cmp-rdbms-jar.xml</type-storage>
        </persistence-use>
      </persistence>
    </entity-descriptor>

   <jndi-name>FlightsRemote</jndi-name>
  <local-jndi-name>Flights</local-jndi-name> 
 </weblogic-enterprise-bean>
<p class="indent">

belly
2005-10-31 12:15


弄懂了, 来跟大家分享。

原因在: 本地接口只能在同一个容器,好象应该是同一个JVM中才能访问。
我把EJB 放在Weblogic 中,在JB中运行client来JNDI 本地接口,当然不行了。。。。。