Java 我不能从另一个项目调用EJB3
我很紧张,不理解如何调用ejb,因为我在一个简单的示例中遇到了错误 我有一个名为Java 我不能从另一个项目调用EJB3,java,javabeans,ejb-3.0,Java,Javabeans,Ejb 3.0,我很紧张,不理解如何调用ejb,因为我在一个简单的示例中遇到了错误 我有一个名为Test的EJB项目。它只有两个类:HelloWorldBean、HelloWorldInterface //HelloWorldBean package com.demo; import javax.ejb.Remote; import javax.ejb.Stateless; @Stateless @Remote(HelloWorldInterface.class) public class H
Test
的EJB项目。它只有两个类:HelloWorldBean、HelloWorldInterface
//HelloWorldBean
package com.demo;
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless
@Remote(HelloWorldInterface.class)
public class HelloWorldBean implements HelloWorldInterface {
public String helloWorld() {
return "Hello world !";
}
}
//HelloWorldInterface
package com.demo;
public interface HelloWorldInterface {
String helloWorld();
}
两者都打包在一个名为Test.WAR
的WAR中,其中包含Test.jar,并部署在WAS7.0服务器中
我有另一个名为TestWeb
的项目,它将打包并部署在同一台服务器上。
在这里,我实现了mvc的一个控制器
package controller;
import javax.ejb.EJB;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class My_Controller {
@EJB
private HelloWorldInterface helloBean;
@RequestMapping("testpage")
public ModelAndView mostraPagina(){
ModelAndView model = new ModelAndView();
model.setViewName("testpage");
model.addObject("hello", "? " + "EJB:" + helloBean.helloWorld());
return model;
}
}
我得到了以下几行中的错误:
- 私有HelloWorldInterface helloBean李>
- model.addObject(“hello”,“?”+“EJB:+helloBean.helloWorld())李>
HelloWorldInterface cannot be resolved to a type. Location: My_Controller.java
我从一开始就创建了一个新的ejb项目,并选择生成他的客户机。之后,我用远程接口创建了一个会话bean,并在Web项目中使用了RAD选项“公开RPC适配器服务”。 这样我就有了两只耳朵,两只耳朵都有两个罐子(包括客户) 粗略地说:
- 第一耳
- ejbjar,客户端JAR
- 第二只耳朵
- Web JAR,客户端JAR
HelloWorldInterface
。然后,包含bean的项目和客户机都依赖于该接口项目,但彼此独立。