0

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

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 日志记录?

4

1 回答 1

0

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

要启用日志记录,只需将需要的log4jslf4j您正在使用的任何框架放入 server 的全局库中,然后创建一个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-09-13T21:52:14.850 回答