`
nesuk
  • 浏览: 169248 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过异常了解Weblogic下tld文件的验证

阅读更多
  近期公司的全部项目都要支持WebLogic,所以各个项目组在新版本开发的同时,并行进行着上一版本程序的维护升级工作。在这个第三方Jar包升级和项目迁移的过程中遇到了各种环境相关的问题,比如今天就遇到了一个特棘手的问题,异常信息如下:

<2012-8-17 上午11时56分40秒 CST> <Warning> <HTTP> <BEA-101196> <[plat-resmgr1.8.7.war]: Error while parsing the Tag Library Descriptor at "/opt/weblogic/user_projects/domains/plat1.8.7/servers/AdminServer/tmp/_WL_user/_appsdir_plat-resmgr1.8.7_war/malq6e/war/WEB-INF/tlds/jstl-c.tld".
com.ctc.wstx.exc.WstxIOException: java.sun.com
        at com.ctc.wstx.sr.StreamScanner.throwFromIOE(StreamScanner.java:699)
        at com.ctc.wstx.sr.ValidatingStreamReader.findDtdExtSubset(ValidatingStreamReader.java:480)
        at com.ctc.wstx.sr.ValidatingStreamReader.finishDTD(ValidatingStreamReader.java:341)
        at com.ctc.wstx.sr.BasicStreamReader.skipToken(BasicStreamReader.java:3356)
        at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:1973)
        Truncated. see log file for complete stacktrace
java.net.UnknownHostException: java.sun.com
        at java.net.InetAddress.getAllByName0(InetAddress.java:1157)
        at java.net.InetAddress.getAllByName(InetAddress.java:1083)
        at java.net.InetAddress.getAllByName(InetAddress.java:1019)
        at weblogic.net.http.HttpClient.openServer(HttpClient.java:297)
        at weblogic.net.http.HttpClient.openServer(HttpClient.java:404)
        Truncated. see log file for complete stacktrace


多个Jar包中的TLD文件一按正都出现了问题,比如Struts.jar下的struts-bean.tld、struts-tld.tld等等。异常的大致原因为:因为程序所在的服务器是不能访问公网的,所以程序启动时必要文件的验证需要访问java.sun.com上的dtd文件,如
引用
http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd


但是,访问因特网只是理想的环境,而且Tomcat下如果不访问因特网就不会报此异常。大家着实为这个问题忙活了不少,查了很多资料,试了各种方法。最后一同事从网上挖出一先人的总结,方案如下:
给WebLogic引用的JVM加入启动参数,具体为在startWeblogic.sh/startWeblogic.bat中找到JAVA_OPTIONS变量的声明
引用
JAVA_OPTIONS="${SAVE_JAVA_OPTIONS}"
修改为
引用
JAVA_OPTIONS="${SAVE_JAVA_OPTIONS} -Djavax.xml.stream.XMLInputFactory=weblogic.xml.stax.XMLStreamInputFactory"
就这样,重启,OK了。很简单,也很有效。

关于这个JVM参数的详细资料目前没有找到。只有一篇相关度不是很高的帖子如下:https://svn.codehaus.org/woodstox/wstx/trunk/release-notes/USAGE。暂且先记录于此,方便日后进一步关注这个问题,也方便遇到同样问题的朋友能做个参考。


目前个人理解为XML文件验证时,WebLogic环境下默认的XMLInputFactory是需要立刻读取远程DTD文件的,而weblogic.xml.stax.XMLStreamInputFactory可以从它自身存放DTD文件的目录读取,用来验证。
分享到:
评论
1 楼 carlisliu 2014-08-15  

相关推荐

    weblogic下开发web项目时修改java文件不用重启的绿色方法,不用修改weblogic的配置文件、不用jar

    标题和描述中提到的“绿色方法”是指一种优化的、无需修改WebLogic配置文件或使用额外JAR的方式,来实现在WebLogic下修改Java源代码后立即生效,而无需重启服务器。这种方法主要是通过利用WebLogic的热部署(Hot ...

    weblogic9.2许可文件

    4. 为了验证许可文件是否成功导入并解除了并发用户限制,你可以检查 WebLogic Server 的日志文件,查看是否有相关的成功信息,或者通过管理控制台查看服务器的配置信息。 5. 在生产环境中,确保定期备份许可文件,...

    Weblogic扩展JAAS身份验证案例

    将包含自定义LoginModule的Java代码打包成JAR文件,然后将其部署到WebLogic服务器的`lib`目录下。更新服务器配置后,重启WebLogic以使更改生效。最后,通过尝试登录应用来测试新实现的验证机制。 4. **源码分析**...

    weblogic_dump文件分析器

    6. **兼容性与可扩展性**:一个好的WebLogic Dump文件分析器应该能兼容不同版本的WebLogic Server,并且允许通过插件或定制开发来处理特定的dump格式或添加额外的分析功能。 使用WebLogic Dump 文件分析器时,需要...

    WebLogic 配置文件

    通过监控WebLogic域的状态,可以实时了解服务器性能,及时发现并解决问题,确保系统的稳定运行。 **优化WebLogic的建议** 1. 为WebLogic启动设置Java参数,例如在`startWebLogic.cmd`脚本中定制`JAVA_HOME`和Java堆...

    weblogic8.1配置说明文件

    - 将驱动程序包添加到 `weblogic81\common\lib` 目录下或通过环境变量指定。 #### 示例:数据库连接配置 1. **Oracle 数据库连接**: - 将 Oracle 的 JDBC 驱动程序包 `classes12.jar` 复制到项目的 `\WEB-INF\...

    weblogic12.1.3补丁包

    这个漏洞允许远程攻击者未经身份验证就执行任意代码,只需通过WebLogic服务器的T3协议发送特制的请求。由于这个漏洞的存在,攻击者可以完全控制受影响的系统,执行任意操作,如数据窃取、恶意软件传播或系统破坏。...

    weblogic安装部署文件

    在WebLogic的安装目录下,通常可以找到创建域的脚本文件`config.cmd`。双击运行此文件,启动创建域向导。 在向导的下一步中,你可以按照默认设置进行,也可以根据实际需求自定义配置。例如,你可以选择创建一个名为...

    解决weblogic部署JAX-WS需要的配置文件

    - **WSDL文件**:描述服务接口的XML文件,客户端通过它了解如何调用服务。 - **其他依赖**:可能包括服务所需的库文件(JARs)或其他支持文件。 在部署过程中,可能遇到的问题包括但不限于: - **命名空间冲突**:...

    weblogic无法解析xml解决办法

    有些情况下,在开发web项目中会遇到weblogic无法解析xml的错误,是因为weblogic在解析xml时是调用自己的方法去解析,会产生一些莫名其妙的错误,我们只要在web-inf下添加weblogic.xml让其让出解析权即可.

    通过nodeManager启动weblogic服务.doc

    3. **设置环境变量**:切换至weblogic用户,编辑`.bash_profile`文件,设置`JAVA_HOME`、`CLASSPATH`和`PATH`,并应用更改。 4. **安装WebLogic**:使用weblogic用户执行安装脚本,按照提示进行典型安装,指定正确的...

    weblogic 11G 虚拟目录映射weblogic.xml配置

    在WebLogic 11g中,我们可以通过修改`weblogic.xml`文件来定义虚拟目录,这通常位于Web应用程序的WEB-INF目录下。 首先,我们需要了解`&lt;wls:context-root&gt;`元素,它是定义Web应用访问URL的基础。例如,如果你设置`...

    AIX下的Weblogic安装

    在AIX环境下,遇到问题时,查看WebLogic的日志文件(如`&lt;domain_home&gt;/logs/&lt;server_name&gt;.log`)和AIX系统的系统日志(如`/var/adm/messages`)可以帮助定位问题。 以上就是在AIX系统中安装、配置和启动WebLogic...

    WebLogic创建根上下文

    通过以上解析,我们可以了解到`weblogic.xml`文件对于Web应用程序在WebLogic服务器上的配置至关重要。特别是`context-root`元素,它决定了应用程序的访问路径。正确配置这些元素可以极大地提高Web应用程序的灵活性和...

    weblogic.xml配置详解

    通过上述分析,我们可以看出 `weblogic.xml` 文件在 WebLogic Server 部署配置中扮演着至关重要的角色。正确地配置这些元素可以帮助开发者和管理员更好地控制应用程序的安全性和运行环境。此外,深入了解每个元素的...

    weblogic和apache集成的so文件

    weblogic和apache集成的so文件,64位版本

    weblogic版本说明文件

    bea\logs\log.txt bea\registry.xml 中可查看版本

    WebLogic平台下部署Servlet与Jsp

    ### WebLogic平台下部署Servlet与Jsp #### 实验目的 本实验旨在让学习者掌握在WebLogic平台上部署Servlet与Jsp的方法和技术要点。通过实际操作,加深对Servlet与Jsp的理解,熟悉WebLogic服务器的基本配置及应用...

    weblogic下配置JNDI数据源

    WebLogic 下配置 JNDI 数据源 WebLogic 是一款功能强大的 Java 应用服务器,提供了强大的集成和管理功能,而 JNDI(Java Naming and Directory Interface)是 Java 中的一种命名和目录接口,用于在 Java 应用程序中...

    weblogic开发jar包打包

    标题中的"weblogic开发jar包打包"指的是在开发针对WebLogic Server的应用程序时,可能需要将依赖的库文件(jar包)整合到一个可部署的单元中,这通常通过构建工具如Maven或Gradle来完成。打包过程可以确保所有必要的...

Global site tag (gtag.js) - Google Analytics