EJB无状态bean只能返回值,无法打印

时间:2015-06-10 20:53:53

标签: java ejb stateless-session-bean

我尝试实现一个远程无状态bean。对于此bean中的方法,可以正确返回返回值。但是,对于“println”这些方法无法向控制台打印任何东西。 界面是

public interface HelloWorld {
    public void SayHelloWorld(String name); 
    public String SayHello(String name);
}

实施

@Stateless
@Remote(HelloWorld.class)
public class HelloWorldBean implements HelloWorld {

    @Override
    public void SayHelloWorld(String name) {
        System.out.println(name + " say hello to the world!");
    }

    @Override
    public String SayHello(String nameString) {
        System.out.println("This is SayHello()");
        return nameString;
    }

}

客户是

public class HelloWorldTest {

    public static void main(String[] args) {

        try {
            FileInputStream inputStream = new FileInputStream("ejb.properties");
            Properties pro = new Properties();
            pro.load(inputStream);
            InitialContext icContext = new InitialContext(pro);
            HelloWorld hw = (HelloWorld) icContext.lookup("ejb/HelloWorldBean!com.ejbinterface.HelloWorld");
            hw.SayHelloWorld("tom");
            String aa = hw.SayHello("tom");
            System.out.println(aa);
        } catch (NamingException e) {
        e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

我不知道为什么没有执行方法“SayHelloWorld”和“SayHello”中的println。但是,变量“aa”(在客户端中)正确获取返回值。

1 个答案:

答案 0 :(得分:1)

它打印到服务器的控制台(或者,如果重定向,则打印到某个日志文件 - 但这只是一个配置问题)。只需查看输出,如果方法执行,那么输出就在那里。