这个是我的业务接口package com.helloworld;import java.util.Date;public interface HelloWorldRemote {
public String getAuthor();
public String getVersion();
public Date getDate();
public String getUUID();
}
Bean
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里面调
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)
麻烦老鸟帮忙解决一下,谢谢。
public String getAuthor();
public String getVersion();
public Date getDate();
public String getUUID();
}
Bean
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里面调
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)
麻烦老鸟帮忙解决一下,谢谢。
@Remote
我写的时候使用的是这样的方式注解调用的时候
(UserService)context.lookup("userService/remote");参考下?
接口也要有