为什么在jsp中使用session bean正常,而在servlet中使用就抛异常?

weya 2003-04-05 07:22:28
我用下面的代码访问一个名为Hello的session bean

InitialContext ic = new InitialContext();
Object objRef = ic.lookup("Hello");
。。。。。。

如果把这段代码放在jsp中则一切正常,但放在servlet中就会抛出一个javax.naming.CommunicationException的异常,实在是很奇怪!大家看看这是怎么回事。

下面是我在catch(Exception ex)中用ex.printStackTrace()打印出来的信息
javax.naming.CommunicationException. Root exception is
java.rmi.ConnectException: Connection refused to host: (此处为ip地址); nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:567)
at 。。。。。。(后略)
...全文
39 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
DavidBone 2003-04-24
  • 打赏
  • 举报
回复
ding
DavidBone 2003-04-19
  • 打赏
  • 举报
回复
up
weya 2003-04-17
  • 打赏
  • 举报
回复
重装系统后,问题不复存在。

重装是一个逃避问题的好方法。
weya 2003-04-09
  • 打赏
  • 举报
回复
好像没什么变化嘛
javalovers 2003-04-07
  • 打赏
  • 举报
回复
InitialContext ic = new InitialContext();

初始化上下文的时候
javalovers 2003-04-07
  • 打赏
  • 举报
回复
例如:
_____________________________________________________________________________
package hello.ejb;

import java.util.*;
import java.io.*;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;

public class HelloClient
{

public static void main(String[] args)
{
try
{
//jndi配置,硬编码到java中,应实现为外部属性文件
Properties p=new Properties();
p.setProperty("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
p.setProperty("java.naming.provider.url",
"localhost:1099");
//out print jndi配置
p.list(System.out);
// Get a naming context
InitialContext jndiContext = new InitialContext(p);
System.out.println("Got context");
// Get a reference to the Interest Bean
//jboss默认jndi名为ejb-jar.xml中的:ejb-name
Object ref = jndiContext.lookup("Hello");
System.out.println("Got reference");
// Get a reference from this to the Bean's Home interface
HelloHome home = (HelloHome)
PortableRemoteObject.narrow(ref, HelloHome.class);
// Create an Hello object from the Home interface
Hello hello = home.create();
// call the hello() method
System.out.println(hello.hello());
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}
weya 2003-04-07
  • 打赏
  • 举报
回复
不好意思,我还是不知道如何写出jboss的地址,javalovers(飞飞)兄, 可以给出具体代码吗?
weya 2003-04-06
  • 打赏
  • 举报
回复
如何写出jboss的ip地址?
javalovers 2003-04-06
  • 打赏
  • 举报
回复
可能是找不到你的应用服务器


你在lookup的时候,写出你jboss的ip地址试试看
weya 2003-04-06
  • 打赏
  • 举报
回复
我是这样写的啊,可是没用。我想知道在什么情况下会“Connection refused”。

为什么在jsp中能过,在servlet中不能过?jsp不也要翻译成servlet的吗。
kadina 2003-04-06
  • 打赏
  • 举报
回复
JNDI名保证正确吗?

试试:
Object objRef = context.lookup("Hello");
YourHome home = (YourHome)PortableRemoteObject.narrow(objRef, YourHome.class);
proZeus 2003-04-06
  • 打赏
  • 举报
回复
不理解,顶!
weya 2003-04-06
  • 打赏
  • 举报
回复
非常奇怪的问题,有人碰到过吗?
weya 2003-04-05
  • 打赏
  • 举报
回复
sorry 我忘了说,我的环境是jboss-3.0.6 + tomcat-4.1.18整合版,jsp和servlet都在\server\default\deploy\hello.war目录下,EJB在\server\default\deploy\hello.jar包中
javalovers 2003-04-05
  • 打赏
  • 举报
回复
你的应用服务器是什么?jsp和servlet在什么server上?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧