我在MyEclipse6.5中编写了一个简单的无状态Session Bean,只包含了一个接口和一个类,代码如下:package session;import javax.ejb.Stateless;
import java.util.*;@Stateless
public class FirstSession implements FirstSessionRemote
{
public String getTime()
{
Formatter fmt = new Formatter();
Calendar cal = Calendar.getInstance();
fmt.format("%tr", cal);
return fmt.toString();
}
}
package session;import javax.ejb.Remote;@Remote
public interface FirstSessionRemote extends java.io.Serializable
{
public String getTime();}
使用MyEclipse6.5将EJB发布到weblogic10,进入weblogic10后查看也成功发布了,如下图
但客户端在调用时jndi是session.FirstSessionRemote吗?调用代码如下:import javax.naming.*;
import session.*;
import java.util.*;
import javax.ejb.EJB;public class Client
{
public static InitialContext getInitialContextForWeblogic()
throws NamingException
{
InitialContext ctx = null;
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
p.put(Context.PROVIDER_URL, "t3://localhost:7001");
return new javax.naming.InitialContext(p); } @EJB
private static FirstSessionRemote first; // injected field must be static
public static void main(String args[]) throws Exception
{
try
{
Context jndiContext = getInitialContextForWeblogic();
Object ref = jndiContext
.lookup("session.FirstSessionRemote");
System.out.println("aa");
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
在执行上面的代码后,将抛出如下的异常:While trying to lookup 'session.FirstSessionRemote' didn't find subcontext 'session'. Resolved ''
不知客户端是这样调用远程的EJB3.0的服务吗
import java.util.*;@Stateless
public class FirstSession implements FirstSessionRemote
{
public String getTime()
{
Formatter fmt = new Formatter();
Calendar cal = Calendar.getInstance();
fmt.format("%tr", cal);
return fmt.toString();
}
}
package session;import javax.ejb.Remote;@Remote
public interface FirstSessionRemote extends java.io.Serializable
{
public String getTime();}
使用MyEclipse6.5将EJB发布到weblogic10,进入weblogic10后查看也成功发布了,如下图
但客户端在调用时jndi是session.FirstSessionRemote吗?调用代码如下:import javax.naming.*;
import session.*;
import java.util.*;
import javax.ejb.EJB;public class Client
{
public static InitialContext getInitialContextForWeblogic()
throws NamingException
{
InitialContext ctx = null;
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
p.put(Context.PROVIDER_URL, "t3://localhost:7001");
return new javax.naming.InitialContext(p); } @EJB
private static FirstSessionRemote first; // injected field must be static
public static void main(String args[]) throws Exception
{
try
{
Context jndiContext = getInitialContextForWeblogic();
Object ref = jndiContext
.lookup("session.FirstSessionRemote");
System.out.println("aa");
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
在执行上面的代码后,将抛出如下的异常:While trying to lookup 'session.FirstSessionRemote' didn't find subcontext 'session'. Resolved ''
不知客户端是这样调用远程的EJB3.0的服务吗
解决方案 »
- org.springframework.orm.hibernate3.support.OpenSessionInViewFilter作用
- structs中的<html:text/>中 有没有类似<input type="text"/>的 id属性啊
- 请问怎么给jsf页面中动态按钮添加事件
- 想买本能混口饭吃的J2EE方面的书~~
- struts2 两个action之间传递中文参数如何解决?
- 去表单数据的中文乱码问题??????
- 最近复习~~老碰到这种问题~帮我看看程序错哪里好吗??
- 十分有用的代码:检测服务器环境的JSP Info
- 简单但奇怪的struts问题,在线等待
- 请教一个算法问题。
- frame 自适应高度的问题
- ext
import javax.naming.InitialContext;
public class Client
{
public static void main(String [] args)
{
Context context = new InitialContext();
CalculateEJB ejb =
(CalculateEJB)context.lookup("java:comp/env/ejb/CalculateEJB");
myejb.incrementValue();
}
} 另外,在www.itstudy8.org上有很多关于EJB3.0的电子书(英文),你可以参考一下
@Stateless (mappedName="for")调用时用lookup("for#session.FirstSessionRemote");
试试