0

在大学里,我正在做关于 Java 的 EJB 项目。我有一些 Bean(远程接口和它的实现,主要业务逻辑)。我想打印一些调试文本\信息。例如:

@Stateless(mappedName = "BusinessLogicBean")     // имя, по которому можно обращаться к этому бину извне)

public class BusinessLogicSessionBean implements BusinessLogicSessionBeanRemote, BusinessLogicSessionBeanLocal {
    @PersistenceContext(unitName = "FoodDiary-ejbPU")
    private EntityManager em;

    @Override
    public void addNewProduct(String name, Boolean isProducr, String kkal, String prot, String fat, String carb) {
 System.out.printl("Now we are running method ADD NEW PRODUCT");
....
}

但是当我使用所有方法时 - 他们正在执行所有业务逻辑,但不会在任何地方打印我的短语(我正在使用 SOUT 编写)。我在 Glassfish 日志中查看,如果执行我的程序,则在日志中 - 没有任何内容。

谁能告诉我如何从 Session Beans 打印我的信息?

4

2 回答 2

0

尝试使用调试器使您的 System.out.println 被应用程序访问。一般来说,它看起来没问题。

于 2014-11-25T11:45:13.643 回答
0

根据 glassfish 文档:

https://docs.oracle.com/cd/E19798-01/821-1752/beafc/index.html

启用详细模式

要在命令提示符屏幕上将服务器日志和消息打印到System.out,您可以在详细模式下启动服务器。这使得使用打印语句进行简单调试变得容易,而无需每次都查看 server.log 文件。

要以详细模式启动服务器,请使用 ----verbose 选项,如下所示:

asadmin start-domain --verbose [域名]

当服务器处于详细模式时,除了日志文件之外,还会将消息记录到控制台或终端窗口。此外,按 Ctrl-C 会停止服务器并按 Ctrl-\(在 UNIX 平台上)或 Ctrl-Break(在 Windows 平台上)打印线程转储。在 UNIX 平台上,您还可以使用 jstack 命令(请参阅http://java.sun.com/javase/6/docs/technotes/tools/share/jstack.html)或命令 kill -QUIT process_id打印线程转储.

于 2014-12-03T14:07:22.437 回答