﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-hyhos</title><link>http://www.blogjava.net/hyhos/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 09 Jun 2026 20:58:52 GMT</lastBuildDate><pubDate>Tue, 09 Jun 2026 20:58:52 GMT</pubDate><ttl>60</ttl><item><title>关于jaxp.properties的问题</title><link>http://www.blogjava.net/hyhos/archive/2007/10/21/154606.html</link><dc:creator>hyhos</dc:creator><author>hyhos</author><pubDate>Sat, 20 Oct 2007 16:40:00 GMT</pubDate><guid>http://www.blogjava.net/hyhos/archive/2007/10/21/154606.html</guid><wfw:comment>http://www.blogjava.net/hyhos/comments/154606.html</wfw:comment><comments>http://www.blogjava.net/hyhos/archive/2007/10/21/154606.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/hyhos/comments/commentRss/154606.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyhos/services/trackbacks/154606.html</trackback:ping><description><![CDATA[
		<p>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
						<span style="FONT-SIZE: 10pt">
								<font face="Times New Roman">
										<span style="FONT-FAMILY: 宋体">访问</span>AIX<span style="FONT-FAMILY: 宋体">系统中部署在</span>OC4J<span style="FONT-FAMILY: 宋体">中的</span>web</font>
						</span>
						<span style="FONT-FAMILY: 宋体">
								<span style="FONT-SIZE: 10pt">
										<font face="Times New Roman">模块的页面时遇到这个错误：<br />  javax.xml.parsers.FactoryConfigurationError: Provider null could not be instantiated:         <br />    java.lang.NullPointerException<br /></font>
								</span>
								<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">
										<span style="FONT-SIZE: 10pt">        at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)<br />        at org.apache.commons.digester.Digester.getFactory(Digester.java:478)<br />        at org.apache.commons.digester.Digester.getParser(Digester.java:683)<br />        at org.apache.commons.digester.Digester.getXMLReader(Digester.java:891)<br />        at org.apache.commons.digester.Digester.parse(Digester.java:1591)<br />        at org.apache.struts.action.ActionServlet.initServlet(ActionServlet.java:1433)<br />        at org.apache.struts.action.ActionServlet.init(ActionServlet.java:466)<br />        at javax.servlet.GenericServlet.init(GenericServlet.java:256)<br />        at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpApplication.loadServlet(HttpApplication.java:2231)<br />        at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpApplication.findServlet(HttpApplication.java:4617)<br />        ……<br /></span>
										<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">
												<span style="FONT-SIZE: 10pt">
														<font face="Times New Roman">或者这样的异常：<br />  </font>
														<span style="FONT-FAMILY: 宋体">
																<font face="Times New Roman">javax.servlet.jsp.JspException: Can't get definitions factory from context.<br />     at org.apache.struts.taglib.tiles.InsertTag.processDefinitionName(InsertTag.java:583)<br />     at org.apache.struts.taglib.tiles.InsertTag.createTagHandler(InsertTag.java:487)<br />     at org.apache.struts.taglib.tiles.InsertTag.doStartTag(InsertTag.java:451)<br />     at _welcome._jspService(_welcome.java:54)<br />     [SRC:/welcome.jsp:4]</font>
														</span>
												</span>
										</span>
								</span>
						</span>
				</span>
		</p>
		<p>
				<font face="Times New Roman">
						<span style="FONT-SIZE: 10pt">
								<span style="FONT-FAMILY: 宋体">     ……</span>
								<br />
						</span>
						<span style="FONT-SIZE: 10pt">
								<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">
										<span style="FONT-SIZE: 10pt">
												<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">而当在<span lang="EN-US" style="FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Windows</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">环境下部署时就没有问题。</span></span>
										</span>
								</span>  </span>
				</font>
		</p>
		<p>
				<font face="Times New Roman">
						<span style="FONT-SIZE: 10pt">
								<span style="FONT-FAMILY: 宋体">这里是因为</span>IBM<span style="FONT-FAMILY: 宋体">的</span>AIX<span style="FONT-FAMILY: 宋体">系统使用的是</span>IBM<span style="FONT-FAMILY: 宋体">的</span>JDK<span style="FONT-FAMILY: 宋体">。而</span><span style="FONT-FAMILY: 宋体">出现这个问题正是因为</span>IBM<span style="FONT-FAMILY: 宋体">和</span>SUN<span style="FONT-FAMILY: 宋体">的</span>JDK<span style="FONT-FAMILY: 宋体">的差异。</span></span>
						<span style="FONT-SIZE: 10pt">
								<span style="FONT-FAMILY: 宋体">具体是因为</span> $JAVA_HOME/jre/lib/jaxp.properties <span style="FONT-FAMILY: 宋体">这个文件。</span></span>
				</font>
		</p>
		<p>
				<span style="FONT-SIZE: 10pt">
						<font face="Times New Roman">
								<span style="FONT-FAMILY: 宋体">这个文件以</span>key=value<span style="FONT-FAMILY: 宋体">的形式配置和指定实际使用的</span>XML<span style="FONT-FAMILY: 宋体">解析器实现类</span>(<span style="FONT-FAMILY: 宋体">譬如：</span>javax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl)<span style="FONT-FAMILY: 宋体">。在</span>XML<span style="FONT-FAMILY: 宋体">解析器初始化之前，</span>JDK<span style="FONT-FAMILY: 宋体">首先会搜索</span>System<span style="FONT-FAMILY: 宋体">的</span>properties<span style="FONT-FAMILY: 宋体">寻找解析器的配置项，如果没有则会搜索</span> $JAVA_HOME/jre/lib <span style="FONT-FAMILY: 宋体">路径下的</span> jaxp.properties <span style="FONT-FAMILY: 宋体">文件，如果还没有，接下来会在</span>classpath<span style="FONT-FAMILY: 宋体">上的</span>.jar<span style="FONT-FAMILY: 宋体">包中寻找，仍然没有的话就会使用默认的解析器。</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 10pt">
						<font face="Times New Roman">
								<span style="FONT-FAMILY: 宋体">实际上这个文件在</span>SUN<span style="FONT-FAMILY: 宋体">的</span>JDK<span style="FONT-FAMILY: 宋体">中是不存在的。在找不到文件的情况下，最终将使用默认解析器。在</span>IBM<span style="FONT-FAMILY: 宋体">的</span>JDK<span style="FONT-FAMILY: 宋体">中存在</span> jaxp.properties<span style="FONT-FAMILY: 宋体">这个文件。但是这个文件中默认所有的配置项是注释掉的，所以在搜索到此处时，不再继续向下搜索，但是由于读取不到配置项，所以会返回</span>null <span style="FONT-FAMILY: 宋体">，于是出现了上文的第一个错误。第二个异常大概是因为访问使用</span>tiles<span style="FONT-FAMILY: 宋体">框架的页面时，由于</span>XML<span style="FONT-FAMILY: 宋体">解析器初始化出错，所以</span>tiles<span style="FONT-FAMILY: 宋体">框架的配置文件也就读取不了了。</span></font>
				</span>
		</p>
		<p>
				<span style="FONT-SIZE: 10pt">
						<font size="2">
								<font face="Times New Roman">
										<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">参考文章：</span>
										<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">
												<a title="永久链接：Java XML API 漫谈" href="http://robbin.javaeye.com/blog/75">Java XML API <span style="FONT-FAMILY: 宋体">漫谈</span></a>(<a href="http://robbin.javaeye.com/blog/75">http://robbin.javaeye.com/blog/75</a>)</span>
								</font>
						</font>
						<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">
								<font face="Times New Roman" size="2">。<br /></font>
						</span>
				</span>
		</p>
<img src ="http://www.blogjava.net/hyhos/aggbug/154606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyhos/" target="_blank">hyhos</a> 2007-10-21 00:40 <a href="http://www.blogjava.net/hyhos/archive/2007/10/21/154606.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>读取war包内的配置文件</title><link>http://www.blogjava.net/hyhos/archive/2007/10/10/151767.html</link><dc:creator>hyhos</dc:creator><author>hyhos</author><pubDate>Wed, 10 Oct 2007 07:39:00 GMT</pubDate><guid>http://www.blogjava.net/hyhos/archive/2007/10/10/151767.html</guid><wfw:comment>http://www.blogjava.net/hyhos/comments/151767.html</wfw:comment><comments>http://www.blogjava.net/hyhos/archive/2007/10/10/151767.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/hyhos/comments/commentRss/151767.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyhos/services/trackbacks/151767.html</trackback:ping><description><![CDATA[
		<p style="FONT-SIZE: 12pt">    最近在OC4J上面部署打好包的.war模块时遇到一点问题。参考下面的文章：<br />        <a href="http://blog.csdn.net/chensheng913/archive/2004/12/29/233257.aspx"><u><font color="#810081">http://blog.csdn.net/chensheng913/archive/2004/12/29/233257.aspx</font></u></a><br />    总结一下：<br />    在服务器上部署web模块时，如果以目录的形式部署，一般用下面的方法得到配置文件绝对路径：</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #000000">    </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000"> 配置文件的路径</span>
				<span style="COLOR: #008000">
						<br />
				</span>
				<span style="COLOR: #000000">    String configFile</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">/WEB-INF/config.xml</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">;<br />    ServletContext context </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> getServletContext(); <br />    String realPath</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">context.getRealPath(configFile);</span>
		</div>
		<p style="FONT-SIZE: 12pt">     但有时候需要部署打包好的.war文件，由于配置文件已经打包进了.war包，所以上面的方法就不能正确返回路径。那么可以使用以下方法来读取配置文件：</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">    </span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000"> 配置文件的路径</span>
				<span style="COLOR: #008000">
						<br />
						<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">    String configFile</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">/WEB-INF/config.xml</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    ServletContext context </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> getServletContext();<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    InputStream is</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">context.getResourceAsStream(configFile);</span>
		</div>
		<p style="FONT-SIZE: 12pt">     在得到配置文件的输入流后就可以使用合适的API来解析了。需要注意的是这里的configFile必须是以"/"开头，并且是相对于应用根的路径。<br />    </p>
<img src ="http://www.blogjava.net/hyhos/aggbug/151767.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyhos/" target="_blank">hyhos</a> 2007-10-10 15:39 <a href="http://www.blogjava.net/hyhos/archive/2007/10/10/151767.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>