Sorry for the long title.

So, here is the run down. I'm essentially building a java Document tree by 
adding nodes and the like. I have a particular RelaxNG schema that I want 
Document to build against.

Now, I can load and create the corresponding SchemaFactory and Schema 
instances on my local machine. I then add them to my Document.

This all works when running on my local machine (Mac Snow Leopard, Eclipse 
Java EE Helios, latest Google Web Toolkit plugin). However, when I deploy to 
App Engine, I get the following error:

#
2011-02-10 18:21:22.253 /labauthoringtool/genXML 500 1778ms 1913cpu_ms 0kb 
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13) 
Gecko/20101203 Firefox/3.6.13,gzip(gfe)
See details

99.65.209.224 - - [10/Feb/2011:18:21:22 -0800] "POST 
/labauthoringtool/genXML HTTP/1.1" 500 93 
"http://2.csc307g3lat.appspot.com/"; "Mozilla/5.0 (Macintosh; U; Intel Mac OS 
X 10.6; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13,gzip(gfe)" 
"2.csc307g3lat.appspot.com" ms=1778 cpu_ms=1913 api_cpu_ms=0 
cpm_usd=0.053268 loading_request=1

#
W 2011-02-10 18:21:22.050

edu.calpoly.cpe307.team3.weblat.server.LabToXMLGenerator parseLab: help!

#
W 2011-02-10 18:21:22.052

edu.calpoly.cpe307.team3.weblat.server.LabToXMLGenerator parseLab: the 
property is: null

#
W 2011-02-10 18:21:22.052

edu.calpoly.cpe307.team3.weblat.server.LabToXMLGenerator parseLab: the new 
property is: com.thaiopensource.relaxng.jaxp.CompactSyntaxSchemaFactory

#
E 2011-02-10 18:21:22.240

javax.servlet.ServletContext log: Exception while dispatching incoming RPC 
call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public 
abstract java.lang.String 
edu.calpoly.cpe307.team3.weblat.client.LabToXMLGeneratorService.convertToXML(org.web_ide.shared.lab.Lab)'
 
threw an unexpected exception: java.lang.IllegalArgumentException: No 
SchemaFactory that implements the schema language specified by: 
http://relaxng.org/ns/structure/1.0 could be loaded
    at 
com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378)
    at 
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581)
    at 
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:207)
    at 
com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:243)
    at 
com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at 
com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:97)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at 
com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
    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 
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.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:238)
    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.headerComplete(HttpConnection.java:923)
    at 
com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at 
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135)
    at 
com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:261)
    at 
com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:8495)
    at 
com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:8493)
    at 
com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24)
    at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:435)
    at com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java:572)
    at 
com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:448)
    at com.google.tracing.TraceContext.runInContext(TraceContext.java:688)
    at 
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:326)
    at 
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:318)
    at 
com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:446)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:636)
Caused by: java.lang.IllegalArgumentException: No SchemaFactory that 
implements the schema language specified by: 
http://relaxng.org/ns/structure/1.0 could be loaded
    at javax.xml.validation.SchemaFactory.newInstance(Unknown Source)
    at 
edu.calpoly.cpe307.team3.weblat.server.LabToXMLGenerator.parseLab(LabToXMLGenerator.java:120)
    at 
edu.calpoly.cpe307.team3.weblat.server.LabToXMLGenerator.convertToXML(LabToXMLGenerator.java:46)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:43)
    at 
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
    at 
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:207)
    at 
com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:243)
    at 
com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    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 
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.headerComplete(HttpConnection.java:923)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)


Here is the crucial part of my code:
 public Document parseLab (Lab lab) throws LTXGException{

        log.warning("help!");
        log.warning("the property is: " + 
System.getProperty(SchemaFactory.class.getName() + ":" + 
XMLConstants.RELAXNG_NS_URI));
        URL relaxSchemaURL = null;
        System.setProperty(SchemaFactory.class.getName() + ":" + 
XMLConstants.RELAXNG_NS_URI, 
"com.thaiopensource.relaxng.jaxp.CompactSyntaxSchemaFactory");
        log.warning("the new property is: " + 
System.getProperty(SchemaFactory.class.getName() + ":" + 
XMLConstants.RELAXNG_NS_URI));

        SchemaFactory schemaFac = 
SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
        Schema relaxSchema = null;
        DocumentBuilderFactory docFactory = null;
        DocumentBuilder docBuilder = null;
        Document doc = null;
        
        //Let's check and make sure we have a valid Lab object.
        if(lab == null){
            throw new LTXGException("The passed Lab object was null.");
        }
        
        try{
            relaxSchemaURL = new URL(relaxURL);
            relaxSchema = schemaFac.newSchema(relaxSchemaURL);
            
            docFactory = DocumentBuilderFactory.newInstance();
            docFactory.setSchema(relaxSchema);
            docFactory.setValidating(true);
            
            docBuilder = docFactory.newDocumentBuilder();
            
            doc = docBuilder.newDocument();
        }catch (Exception e){
            System.out.println(e.getMessage());
        }

The "log.warning" calls were inserted for debugging. You can see their 
result in the top stacktrace.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to