xsl讀取war包文件失敗

最近在搞項目升級,由原來的jdk1.5升級到jdk1.7,用maven管理項目,使用weblogic自動化發佈war包。

so!so……xsl讀取報錯了。本地測試沒問題(tomcat啓動部署方式),老環境沒有問題(weblogic文件夾發佈方式)。

只有jdk升級後的測試環境有問題,也就是說本地無法復現。

以下是報錯信息:

Error at xsl:variable on line 10 of file:

////home/bea1/7001_domain/servers/AdminServer/tmp/_WL_user/hxxyz/zhofds/war/bank/SendToBankFile/xsl/send_shenyinlianS_w.xsl:
  The URI http://xml.apache.org/xslt/java does not identify an external Java class; SystemID: file:////home/bea1/7001_domain/servers/AdminServer/tmp/_WL_user/hxxyz/zhofds/war/bank/SendToBankFile/xsl/send_shenyinlianS_w.xsl; Line#: 10; Column#: -1

javax.xml.transform.TransformerException: The URI http://xml.apache.org/xslt/java does not identify an external Java class
at com.icl.saxon.style.StyleElement.styleError(StyleElement.java:807)
at com.icl.saxon.style.StyleElement.processChildren(StyleElement.java:636)
at com.icl.saxon.style.XSLTemplate.expand(XSLTemplate.java:225)
at com.icl.saxon.style.XSLTemplate.start(XSLTemplate.java:198)
at com.icl.saxon.Controller.applyTemplates(Controller.java:246)
at com.icl.saxon.Controller.run(Controller.java:178)
at com.icl.saxon.Controller.transformDocument(Controller.java:1086)
at com.icl.saxon.Controller.transform(Controller.java:953)
at com.sinosoft.lis.bank.WriteToFileBLS.xmlTransform(WriteToFileBLS.java:883)
at com.sinosoft.lis.bank.WriteToFileBLS.submitData(WriteToFileBLS.java:139)
at com.sinosoft.lis.bank.WriteToFileBL.submitData(WriteToFileBL.java:97)
at com.sinosoft.lis.bank.WriteToFileUI.submitData(WriteToFileUI.java:47)
at jsp_servlet._bank.__writetofilesave._jspService(__writetofilesave.java:267)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at filters.LisCasFilter.doFilter(LisCasFilter.java:78)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:54)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:75)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:34)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3748)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3714)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2283)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2182)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1491)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
 處理失敗,原因是:Xml處理失敗,無法轉換!!
Fail
---WriteToFileSave End---

於是將問題鎖定到weblogic的war報發佈中,是不是因爲weblogic打包發佈時,是將原來classes下面的class打成jar包放到lib下面,導致的java找不到。之後就是修改weblogic,使程序以文件夾的形式發佈。最後測試發現問題還在。原因不在這裏。

就開始重新定位問題。

各種搜索資料,最後我們把xsl解析的jar包升級到最新版本,搞定。

就這樣,我們排查了兩天問題。。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章