欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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)