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");
参考下?