Java 我不能从另一个项目调用EJB3

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

我很紧张,不理解如何调用ejb,因为我在一个简单的示例中遇到了错误

我有一个名为
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.class吗?我编辑了这个问题。错误是:HelloWorldInterface无法解析为类型。位置:My_Controller.java如何使用RAD 8.5检查类路径?我是否必须转到属性->构建路径?您必须从ejb项目创建一个客户端lib jar。包括接口。将此jar放在WEB项目的WEB-INF/libs中客户端库应仅包含接口。在这种情况下,
HelloWorldInterface
。然后,包含bean的项目和客户机都依赖于该接口项目,但彼此独立。