我尝试实现一个远程无状态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”(在客户端中)正确获取返回值。
答案 0 :(得分:1)
它打印到服务器的控制台(或者,如果重定向,则打印到某个日志文件 - 但这只是一个配置问题)。只需查看输出,如果方法执行,那么输出就在那里。