作者 文章标题 请教关于WSAD




新手上路



贴子数量 : 24
注册日期 : 5/8/2002
在线情况 : 离线

  发表于: 5/14/2002 - 02:46
我用WSAD写了一个EJB的应用程序。用EJB Test Client测试正常

新建一Application Client . 编译成功!
执行抛出如下异常:
是否是在new InitialContext().之前设置一些关于was的参数?
Getting the context ......
java.lang.NoClassDefFoundError: com/ibm/rmi/iiop/GIOPVersionException
at com.ibm.CORBA.iiop.ConnectionTable.createConnection(ConnectionTable.java:142)
at com.ibm.CORBA.iiop.ConnectionTable.get(ConnectionTable.java:527)
at com.ibm.CORBA.iiop.ConnectionTable.get(ConnectionTable.java:413)
at com.ibm.CORBA.iiop.GIOPImpl.createRequest(GIOPImpl.java:152)
at com.ibm.CORBA.iiop.GIOPImpl.createRequest(GIOPImpl.java:133)
at com.ibm.CORBA.iiop.ClientDelegate.createRequest(ClientDelegate.java:1080)
at com.ibm.CORBA.iiop.InitialNamingClient.resolve(InitialNamingClient.java:372)
at com.ibm.CORBA.iiop.InitialNamingClient.cachedInitialReferences(InitialNamingClient.java:591)
at com.ibm.CORBA.iiop.InitialNamingClient.resolve_initial_references(InitialNamingClient.java:355)
at com.ibm.CORBA.iiop.ORB.resolve_initial_references(ORB.java:1802)
at com.ibm.ws.naming.util.WsnInitCtxFactory.mergeWsnNSProperties(WsnInitCtxFactory.java:590)
at com.ibm.ws.naming.util.WsnInitCtxFactory.getRootJndiContext(WsnInitCtxFactory.java:352)
at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInternal(WsnInitCtxFactory.java:227)
at com.ibm.ws.naming.util.WsnInitCtx.getContext(WsnInitCtx.java:98)
at com.ibm.ws.naming.util.WsnInitCtx.<init>(WsnInitCtx.java:79)
at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContext(WsnInitCtxFactory.java:135)
at com.ibm.websphere.naming.WsnInitialContextFactory.getInitialContext(WsnInitialContextFactory.java:80)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:669)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:179)
at hbsoft.ejb.clients.HelloWorldEJBTestClient.main(HelloWorldEJBTestClient.java:22)
Exception in thread "P=87064:O=0:CT"

原码:
import javax.naming.*;
import java.util.*;
import javax.rmi.*;
import hbsoft.*;
public class HelloWorldEJBTestClient {

public static void main(String[] args){
HelloWorldSessionHome helloWorldSessionHome= null;
HelloWorldSession helloWorldSession = null;
InitialContext initContext = null;

final String JNDIName = "HelloWorldSessionHome";
String firstNameParam = "Shelon";
String lastNameParam = "Wonsick";
int id = 99;

try {
System.out.println("Getting the context ......");
initContext = new InitialContext();
} catch (Exception ex) {
System.out.println("Whoops! Threw a NamingException..."+ex.getMessage());
ex.printStackTrace();
System.exit(0);
}


//perform the lookup
HelloWorldSessionHome helloSessionHome = null;
try {
System.out.println("Preforming the lookup...");
Object obj=initContext.lookup(JNDIName);

helloWorldSessionHome =
(HelloWorldSessionHome) PortableRemoteObject.narrow(
obj,HelloWorldSessionHome.class);
} catch (javax.naming.NamingException ex) {
System.out.println("whoops!,Error occur...."+ex);
ex.printStackTrace();
System.exit(0);
}

//create a new HelloWorld Session bean

try {
helloWorldSession = helloWorldSessionHome.create();
} catch (Exception ex) {
System.out.println("Whoops! Exception creating new HelloWorldSession: " + ex);
ex.printStackTrace();
System.exit(0);
}

//use the remote interface to EJB

try {

System.out.println("Parameters passed to the commandline:");
System.out.println("Parameter 'id' = " + id);
System.out.println("Parameter 'firstName' = " + firstNameParam);
System.out.println("Parameter 'lastName' = " + lastNameParam);

// talk to the CMP, HelloWorldEntity bean
System.out.println("Calling Session bean methods..");
helloWorldSession.setFirstName(id, firstNameParam);
helloWorldSession.setLastName(id, lastNameParam);

// Verify that the Session bean did in fact update the Entity bean
System.out.println("Verifying method calls happened...");
System.out.println(
"First Name Returned: " + helloWorldSession.getFirstName(id));
System.out.println("Last Name Returned: " + helloWorldSession.getLastName(id));
} catch (java.rmi.RemoteException ex) {
System.out.println(" Whoops!,the call failure");
ex.printStackTrace();
System.exit(0);
}


}
}




 
查看此人的个人资料 发送E-Mail给此人 编辑贴子 引用回复 搜索此人的所有贴子 给此人发送短消息




新手上路



贴子数量 : 24
注册日期 : 5/8/2002
在线情况 : 离线

  发表于: 5/14/2002 - 02:48
我是按照下面的文章来的:

http://www-900.ibm.com/websphere/techjournal/0110_wosnick/index_eng.shtml
 
发送E-Mail给此人 编辑贴子 引用回复 查看此人的所有贴子 给此人发送短消息




版主



贴子数量 : 415
注册日期 : 4/23/2002
在线情况 : 离线

  发表于: 5/14/2002 - 05:18
我翻了一下ibmorb.jar包,也没找到那个类com.ibm.rmi.iiop.GIOPVersionException
不过我想,既然是在建立连接时出错,是不是你改动了什么设置呢?
因为我截取你init InitialContext的代码,在我机上试了一下,并没有错误,而且你的程序也没有执行下去。

 

____________________

WebSphere的支持者,J2EE的爱好者,电子商务的探索者!
 
发送E-Mail给此人 编辑贴子 引用回复 查看此人的所有贴子 给此人发送短消息




新手上路



贴子数量 : 24
注册日期 : 5/8/2002
在线情况 : 离线

  发表于: 5/14/2002 - 07:18
to goodlz:
thanks!

com/ibm/rmi/iiop/GIOPVersionException 在rt.jar中有。我用的是ibm的wsad中的缺神的jdk;
而且,我按照上面的文章写的session bean and servlet中调用
initialContext中能正确调用entitybean.没有问题。
我想使不是执行这个class是要传一定的参数给jvm,我记得weblogic 好像有这类似的参数。在命令行传入。


 
发送E-Mail给此人 编辑贴子 引用回复 查看此人的所有贴子 给此人发送短消息




版主



贴子数量 : 415
注册日期 : 4/23/2002
在线情况 : 离线

  发表于: 5/14/2002 - 08:02
wuwu……我就是在Java项目里新建一个class,然后在wsad缺省的JVM下运行的,没有报错。
我用的是最老的4.0.0,在rt.jar里也没有找到那个类。你用的是哪个版?难道扩充了?

 

____________________

WebSphere的支持者,J2EE的爱好者,电子商务的探索者!
 
发送E-Mail给此人 编辑贴子 引用回复 查看此人的所有贴子 给此人发送短消息




新手上路



贴子数量 : 24
注册日期 : 5/8/2002
在线情况 : 离线

  发表于: 5/16/2002 - 00:34
我用的是wsad 4.0.2.听说wsad 5。0已出来。有什么新特性
与老版本区别大吗?
C:\WSAD\plugins\com.ibm.etools.server.jdk\jre\lib\rt.jar
中包含上述的类。

 
发送E-Mail给此人 编辑贴子 引用回复 查看此人的所有贴子 给此人发送短消息




新手上路



贴子数量 : 2
注册日期 : 7/17/2002
在线情况 : 离线

  发表于: 7/17/2002 - 01:37

 
发送E-Mail给此人 编辑贴子 引用回复 查看此人的所有贴子 给此人发送短消息




新手上路



贴子数量 : 2
注册日期 : 7/17/2002
在线情况 : 离线

  发表于: 7/17/2002 - 01:42
1.Select Window => Preferences.
2.Select Java => Installed JREs. Click New to add the WebSphere JRE to the JRE list. The WebSphere JRE is located in WSAD_HOME/plugins/com.ibm.etools.server.jdk.
3.Right-click on the Java project and select Properties.
Select JRE and then select Use custom JRE for launching.
Select the server JRE that you have just added.

It's all done!

From:
http://www7b.boulder.ibm.com/wsdd/library/techarticles/0203_deboer/deboer.html

 
发送E-Mail给此人 编辑贴子 引用回复 查看此人的所有贴子 给此人发送短消息




版主



贴子数量 : 415
注册日期 : 4/23/2002
在线情况 : 离线

  发表于: 7/17/2002 - 02:34
Good!Thanks!
 
发送E-Mail给此人 编辑贴子 引用回复 查看此人的所有贴子 给此人发送短消息