请教EJB客户端部署问题

05-12-14 paomo30000
本人用IBM Rational做开发工具,中间件用IBM WebSphere做了个Hello World的EJB项目。结构如下:

并且用A机器的Rational成功部署到了位于B机器上的WebSphere。可是Ration似乎不提供测试客户端代码向导啊~~(应用程序客户机项目里面只有一个Main()方法)于是小弟就写了个测试客户端(上图中被点中的HelloClient.java)也不知道这个HelloClient的位置是否正确?并且打了很多jar进来。现在便出现了以下问题,不知道URL如何配置啊???

Exception in thread "P=565016:O=0:CT" javax.naming.ConfigurationException: javax.naming.ConfigurationException: Malformed provider URL: iiop://. Root exception is javax.naming.ConfigurationException: Malformed provider URL: iiop://

at com.ibm.ws.naming.util.WsnInitCtxFactory.parseIiopUrl(WsnInitCtxFactory.java:1623)

at com.ibm.ws.naming.util.WsnInitCtxFactory.parseBootstrapURL(WsnInitCtxFactory.java:1498)

at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInternal(WsnInitCtxFactory.java:378)

at com.ibm.ws.naming.util.WsnInitCtx.getContext(WsnInitCtx.java:112)

at com.ibm.ws.naming.util.WsnInitCtx.getContextIfNull(WsnInitCtx.java:422)

at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:143)

at javax.naming.InitialContext.lookup(InitialContext.java:361)

at ejbs.HelloClient.main(HelloClient.java:56)

客户端代码:

package ejbs;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.rmi.PortableRemoteObject;

import java.util.Hashtable;

import java.util.Properties;

/**

* @author

*

* TODO 要更改此生成的类型注释的模板,请转至

* 窗口 - 首选项 - Java - 代码样式 - 代码模板

*/

public class HelloClient {

public static void main(String[] args) throws Exception {

//1、 建立环境。必须配置将要使用目录服务,包括为验证身份所需的用户名、密码。

// Properties props = System.getProperties();

Hashtable environment = new Hashtable();

environment.put(Context.INITIAL_CONTEXT_FACTORY,

"com.ibm.websphere.naming.WsnInitialContextFactory");

environment.put(Context.URL_PKG_PREFIXES, "com.ibm.ws.naming");

environment.put(Context.PROVIDER_URL, "iiop://");

//2、 建立初始的上下文。初始上下文是连接目录结构的本地出发点。通过初始上下文得到设定的环境属性。

Context ctx = new InitialContext(environment);

//3、 得到Home对象。执行lookup()操作,返回一个RMI远程对象。

//InitialContext ctx = new InitialContext();

Object obj = ctx.lookup("HelloHome");

HelloHome home = (HelloHome)PortableRemoteObject.narrow(obj,HelloHome.class);

Hello hello = home.create();

System.out.println(hello.hello());

//4、调用EJB或Home对象上的remove()方法来清除EJB对象。

hello.remove();

}

}

banq
2005-12-15 11:28
>javax.naming.ConfigurationException: Malformed provider URL

JNDI服务器也即Websphere的IP地址没有写,如下:

environment.put(Context.PROVIDER_URL, "iiop://localhost:2809");

paomo30000
2005-12-16 09:52
谢谢楼上的

猜你喜欢