读书人

EJB3,lookup到Bean后不能强转成业务

发布时间: 2012-01-16 23:36:51 作者: rapoo

EJB3,lookup到Bean后,不能强转成业务接口。请帮帮忙
这个是我的业务接口

Java code
package com.helloworld;import java.util.Date;public interface HelloWorldRemote {    public String getAuthor();    public String getVersion();    public Date getDate();    public String getUUID();}


Bean
Java code
package com.helloworld.bean;import java.util.Date;import java.util.UUID;import javax.annotation.PostConstruct;import javax.annotation.PreDestroy;import javax.ejb.Remote;import javax.ejb.Stateless;import com.helloworld.HelloWorldRemote;@Stateless@Remote (HelloWorldRemote.class)public class HelloWorldBean implements HelloWorldRemote {    @PostConstruct    public void postConstruct() {        System.out.println(this.getClass().getName()+"被初始化!");    }        @PreDestroy    public void destory() {        System.out.println(this.getClass().getName()+"被销毁!");    }        public String getAuthor() {        return "tyo";    }    public Date getDate() {        return new Date();    }    public String getUUID() {        return UUID.randomUUID().toString();    }    public String getVersion() {        return "v1.0";    }}



然后在另一个Web工程的Servlet里面调
Java code
    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        response.setContentType("text/html");        PrintWriter out = response.getWriter();        HelloWorldRemote h = null;        try {            Context context = new InitialContext();            h = (HelloWorldRemote)context.lookup("HelloWorldBean/remote");        } catch (NamingException e) {            e.printStackTrace();        }        out.flush();        out.close();    }




两个工程部署在一个jboss4.2应用服务器里面。
但是运行的时候总是报错,弄了好多次了还是一样。之前我弄的时候没有报错,都是这样写的。

java.lang.ClassCastException: $Proxy65 cannot be cast to com.helloworld.HelloWorldRemote
com.helloworld.servlet.HelloWorldServlet.doGet(HelloWorldServlet.java:44)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


麻烦老鸟帮忙解决一下,谢谢。


[解决办法]
我想应该和HelloWorldBean的UUID有关
[解决办法]
看看ejb一套的什么home啊的类,看看一致吗
[解决办法]
@Stateless(name="userService")
@Remote
我写的时候使用的是这样的方式注解

调用的时候
(UserService)context.lookup("userService/remote");

参考下?

读书人网 >J2EE开发

热点推荐