clientside logging into a file --> Error java.io.FileOutputStream is a restricted class.

375 views
Skip to first unread message

alex

unread,
Jul 9, 2010, 8:05:41 AM7/9/10
to gwt-log
Hi Fred,

Ive a problem with clientside logging into a file.
Nothing is getting logged into my file, but all of the client messages
apearing on my console.
I've defined both file and console appender in my log4j.xml.

Im not sure if this is a gwt-lig or a log4j problem.
Maybe you can tell me.

Thank you.

I'm getting following error:

log4j:WARN Error during default initialization
java.lang.NoClassDefFoundError: java.io.FileOutputStream is a
restricted class. Please see the Google App Engine developer's guide
for more details.
at
com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:
51)
at org.apache.log4j.FileAppender.setFile(FileAppender.java:290)
at
org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:
194)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:
164)
at
org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:
257)
at
org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:
285)
at
org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:
171)
at
org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:
184)
at
org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:
502)
at
org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:
471)
at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:
921)
at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:
790)
at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:
696)
at
org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:
471)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:125)
at org.apache.log4j.Logger.getLogger(Logger.java:105)
at
com.allen_sauer.gwt.log.server.ServerLogImplLog4J.<init>(ServerLogImplLog4J.java:
30)
at com.allen_sauer.gwt.log.client.Log.tryLog4J(Log.java:289)
at com.allen_sauer.gwt.log.client.Log.<clinit>(Log.java:58)
at
com.allen_sauer.gwt.log.server.RemoteLoggerServiceImpl.log(RemoteLoggerServiceImpl.java:
38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:
100)
at
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:
562)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:
188)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:
224)
at
com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:
62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
511)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1166)
at
com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:
51)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:
43)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:
122)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
388)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
216)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
182)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
418)
at
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:
70)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
at com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:349)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
542)
at org.mortbay.jetty.HttpConnection
$RequestHandler.content(HttpConnection.java:938)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
409)
at org.mortbay.thread.QueuedThreadPool
$PoolThread.run(QueuedThreadPool.java:582)

Fred Sauer

unread,
Jul 10, 2010, 2:04:46 AM7/10/10
to gwt...@googlegroups.com
You can use the RemoteLogger to send those log messages to the server and on the server you can log to a file. The browser does not have direct file system access.

  • In your .gwt.xml, turn on the RemoteLogger.
  • Log as normal using Log.debug() etc.
  • On the server configure log4j via gwt-log to log to a file.



--
You received this message because you are subscribed to the Google Groups "gwt-log" group.
To post to this group, send email to gwt...@googlegroups.com.
To unsubscribe from this group, send email to gwt-log+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gwt-log?hl=en.




--
Fred Sauer
Developer Advocate
G
ooglInc.
1600 Amphitheatre Parkway
Mountain View, CA 94043
fre...@google.com


alex

unread,
Jul 14, 2010, 4:39:42 AM7/14/10
to gwt-log
Hello Fred,

I've already configured the first two points.

What exactly do you mean by :
"On the server configure log4j via gwt-log to log to a file. "?



Kind regards,
Alex

Fred Sauer

unread,
Jul 14, 2010, 8:16:26 PM7/14/10
to gwt...@googlegroups.com
log4j can be configured to write to a file ia log4j.xml or log4.properties. 


--
You received this message because you are subscribed to the Google Groups "gwt-log" group.
To post to this group, send email to gwt...@googlegroups.com.
To unsubscribe from this group, send email to gwt-log+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gwt-log?hl=en.

alex

unread,
Jul 15, 2010, 4:05:54 AM7/15/10
to gwt-log
Thank you Fred,

I ve solved my first mentioned error by myself :

log4j:WARN Error during default initialization
java.lang.NoClassDefFoundError: java.io.FileOutputStream is a
restricted class. Please see the Google App Engine developer's guide
for more details. ...


The problem is that I was using "Google App Engine" with my GWT
project (no idea why, Ive got no account for app engine).
So I have desabled it under : project properties / google / app
engine / --> uncheck the ckeckbox "Use Google App Engine".

Quite simple solution.


But my problem with writing something into a file still exists.

Its strange because I am able to write into file if the message is
serverside,
but if its coming from the client (Ive got the remotelogger and
systemlogger enabled nothing else)
it just appearing on my console.

Do you have a demo usecase on your google code site where you log a
clientside message into a file on the server?
I was searching for a demo, but I just find one with a console output.
Maybe it would be usefull to have such a demo usecase too.

Kind regards,
Alex

alex

unread,
Jul 15, 2010, 8:10:47 AM7/15/10
to gwt-log
Hi,

problem solved by myself.


I have temporarly deleted my log4j.jar from classpath ^^

As Ive added it again. All my logging worked fine.

Kind regards,
Alex

Fred Sauer

unread,
Jul 16, 2010, 2:31:45 AM7/16/10
to gwt...@googlegroups.com
Browser the source code for clientserverdemo and you'll find examples.


Kind regards,
Alex

--
You received this message because you are subscribed to the Google Groups "gwt-log" group.
To post to this group, send email to gwt...@googlegroups.com.
To unsubscribe from this group, send email to gwt-log+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gwt-log?hl=en.

Reply all
Reply to author
Forward
0 new messages