EJB尝试无状态本地Bean手札
程序员文章站
2024-02-22 22:09:22
...
模仿书上的例子写一个EJB的无状态本地Bean,代码如下:
EJB模块:
LocalHelloWorld.java
public interface LocalHelloWorld {
public String sayHello(String name);
}
LocalHelloWorldBean.java
import javax.ejb.Local;
import javax.ejb.Stateless;
@Stateless
@Local ({LocalHelloWorld.class})
public class LocalHelloWorldBean implements LocalHelloWorld {
public String sayHello(String name) {
return name +"说:XX是个本地人,无状态大喷子!!!!";
}
}
EJB的调用是在JSP中的,代码如下:
<%@page import="javax.naming.InitialContext"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%
try {
InitialContext ctx = new InitialContext();
LocalHelloWorld helloworld = (LocalHelloWorld) ctx.lookup("LocalHelloWorldBean/local");
out.println(helloworld.sayHello("上海人"));
} catch (Exception e) {
out.println(e.getMessage());
}
%>
结果,JBOSS容器说不能强制转换类型,郁闷。
“$Proxy71 cannot be cast to com.nicholas.ejb3.LocalHelloWorld”
我要接着调试,直到弄明白错误在哪里,会及时发到blog上,希望能够天天进步。
在JBOSS的JMX-CONSOLE中查看JNDI,似乎一切都很正常啊,这个EJB有啊。
+- LocalHelloWorldBean (class: org.jnp.interfaces.NamingContext)
| +- local (proxy: $Proxy71 implements interface com.nicholas.ejb3.LocalHelloWorld,interface org.jboss.ejb3.JBossProxy)
上一篇: 基于MySql的扩展功能生成全局ID