【问题标题】:JAX-WS - Out of memory?JAX-WS - 内存不足?
【发布时间】:2012-09-11 14:33:14
【问题描述】:

我从客户端调用一个简单的端点方法。

MyStatus getStatus(Car car) throws NoSuchCarException;

我得到的是:

java.lang.OutOfMemoryError: PermGen space
at com.sun.xml.internal.ws.client.Stub.process(Stub.java:317)
at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:146)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:98)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:129)
at $Proxy124.getStatus(Unknown Source)
at de.Babs.showState(Babs.java:622)

有什么问题? 如何从 JAX 通信中激活 xml 日志记录?

【问题讨论】:

    标签: log4j jax-ws


    【解决方案1】:

    问题可能在于您的容器或应用程序服务器中部署了两个应用程序。 java.lang.OutOfMemoryError: PermGen space 更多是由于系统的限制(内存)而不是由于编程错误。例如这可能意味着没有足够的内存来加载某些资源。确保在每次部署或重新部署后重新启动服务器。

    要启用日志记录,只需将所需的 log4jslf4j 或您正在使用的任何框架添加到服务器的全局库中,然后创建一个像这样的 log4j.properties 文件(如果您使用的是 log4j):

    log4j.rootLogger=INFO,stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %X{file} %c{1} - %m%n
    
    ####################### YourService ######################
    log4j.logger.com.yourservice.servicename=DEBUG,servicename
    log4j.additivity.com.yourservice.servicename=false
    log4j.logger.servicename=DEBUG,servicename
    log4j.additivity.servicename=false
    log4j.appender.servicename=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.servicename.File=C:\\Servers\\glassfish-3.1.2\\gf-app-logs\\servicename.log
    log4j.appender.servicename.DatePattern='.'yyyy-MM-dd
    log4j.appender.servicename.layout=org.apache.log4j.PatternLayout
    log4j.appender.servicename.layout.ConversionPattern=%d [%t] %-5p %X{file} %c{1} %m%n
    log4j.appender.servicename.ImmediateFlush=true
    ########################################################
    

    我使用的是 glassfish 3,所有的日志记录都出现在这个文件中:C:\\Servers\\glassfish-3.1.2\\gf-app-logs\\servicename.log。例如在 glassfish 3 中,这个log4j.properties 文件,需要添加到:&{base.dir}\glassfish-3.1.2\glassfish3\glassfish\domains\domain1\config

    【讨论】:

      猜你喜欢
      • 2012-04-09
      • 2011-10-20
      • 1970-01-01
      • 2011-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-29
      相关资源
      最近更新 更多