有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Saxon:每次重新部署后都需要重新启动Glassfish

我有一个web应用程序,它使用Java{}缓存静态XSLT,我使用Saxon HE处理器使用这些模板转换XML

我的问题是,每次我在Glassfish上重新部署我的应用程序时,在执行转换时都会出现以下异常:

[2014-07-24T11:14:19.579+0200] [glassfish 4.0] [SEVERE] [] [com.sun.xml.ws.server.sei.TieHandler] [tid: _ThreadID=23 _ThreadName=http-listener-1(4)] [timeMillis: 1406193259579] [levelValue: 1000] [[
  This web container has not yet been started
java.lang.IllegalStateException: This web container has not yet been started
    at org.glassfish.web.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2819)
    at org.glassfish.web.loader.WebappClassLoader.findResource(WebappClassLoader.java:1288)
    at org.glassfish.web.loader.WebappClassLoader.findResource(WebappClassLoader.java:1272)
    at org.glassfish.web.loader.WebappClassLoader.getResourceAsStream(WebappClassLoader.java:1506)
    at org.apache.xerces.parsers.SecuritySupport$6.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.xerces.parsers.SecuritySupport.getResourceAsStream(Unknown Source)
    at org.apache.xerces.parsers.ObjectFactory.findJarServiceProvider(Unknown Source)
    at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
    at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source)
    at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)
    at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.<init>(Unknown Source)
    at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)
    at net.sf.saxon.dom.DOMObjectModel.getDocumentBuilder(DOMObjectModel.java:208)
    at net.sf.saxon.lib.SerializerFactory.getReceiver(SerializerFactory.java:251)
    at net.sf.saxon.lib.SerializerFactory.getReceiver(SerializerFactory.java:104)
    at net.sf.saxon.Controller.openResult(Controller.java:2290)
    at net.sf.saxon.Controller.transformDocument(Controller.java:2043)
    at net.sf.saxon.Controller.transform(Controller.java:1903)
    ... my own packages start here

我唯一能做的就是重新启动Glassfish(它还有几个应用程序,所以需要一段时间),然后再试一次。这真的很烦人,妨碍了我的开发周期

有什么想法吗

发现问题和解决方法

问题在于将Saxon库放在Glassfish的认可目录中。我试着聪明一点,让Saxon为所有应用程序处理javax XSLT,而不是安装任何默认转换器。用我的应用打包Saxon库解决了这个问题


共 (0) 个答案