﻿<?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-负人博客-随笔分类-开源研究</title><link>http://www.blogjava.net/cader/category/12831.html</link><description>要想负多生孩子少种树</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 18:34:30 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 18:34:30 GMT</pubDate><ttl>60</ttl><item><title>Tomcat数据源配置！</title><link>http://www.blogjava.net/cader/archive/2006/07/06/57013.html</link><dc:creator>负人博客</dc:creator><author>负人博客</author><pubDate>Thu, 06 Jul 2006 10:29:00 GMT</pubDate><guid>http://www.blogjava.net/cader/archive/2006/07/06/57013.html</guid><wfw:comment>http://www.blogjava.net/cader/comments/57013.html</wfw:comment><comments>http://www.blogjava.net/cader/archive/2006/07/06/57013.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cader/comments/commentRss/57013.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cader/services/trackbacks/57013.html</trackback:ping><description><![CDATA[
		<p>有关tomcat数据源配置的文章已经不少，但是一般都是把数据源直接配置到server.xml文件中，这样在移植应用程序时带来了一些不必要的麻烦，其实tomcat数据源的配置还有一种方法如下：<br />1.假如有工程test，其需要用到的数据源为test/jdbc/Data，则在目录TOMCAT_HOME/conf\Catalina\localhost<br />下面建立文件test.xml,内容为：</p>
		<p>&lt;?xml version='1.0' encoding='utf-8'?&gt;<br />&lt;Context crossContext="true" displayName="Test" docBase="Test" path="/Test" workDir="work\Catalina\localhost\Test"&gt;<br />  &lt;Resource auth="Container" name="test/jdbc/Data" type="javax.sql.DataSource"/&gt;<br />  &lt;ResourceParams name="test/jdbc/Data"&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;factory&lt;/name&gt;<br />      &lt;value&gt;org.apache.commons.dbcp.BasicDataSourceFactory&lt;/value&gt;<br />    &lt;/parameter&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;url&lt;/name&gt;<br />      &lt;value&gt;jdbc:jtds:sqlserver://127.0.0.1:1433/test;tds=8.0;lastupdatecount=true;&lt;/value&gt;<br />    &lt;/parameter&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;password&lt;/name&gt;<br />      &lt;value&gt;11111111&lt;/value&gt;<br />    &lt;/parameter&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;maxWait&lt;/name&gt;<br />      &lt;value&gt;10000&lt;/value&gt;<br />    &lt;/parameter&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;maxActive&lt;/name&gt;<br />      &lt;value&gt;100&lt;/value&gt;<br />    &lt;/parameter&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;driverClassName&lt;/name&gt;<br />      &lt;value&gt;net.sourceforge.jtds.jdbc.Driver&lt;/value&gt;<br />    &lt;/parameter&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;username&lt;/name&gt;<br />      &lt;value&gt;sa&lt;/value&gt;<br />    &lt;/parameter&gt;<br />    &lt;parameter&gt;<br />      &lt;name&gt;maxIdle&lt;/name&gt;<br />      &lt;value&gt;30&lt;/value&gt;<br />    &lt;/parameter&gt;<br />  &lt;/ResourceParams&gt;<br />&lt;/Context&gt;</p>
		<p>2.其他配置<br />  （1）web.xml文件<br />     在工程当中的web.xml文件中添加<br />    &lt;resource-ref&gt;<br />       &lt;res-ref-name&gt;test/jdbc/Data&lt;/res-ref-name&gt;<br />       &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;<br />       &lt;res-auth&gt;Container&lt;/res-auth&gt;<br />    &lt;/resource-ref&gt;<br /> （2）工程中调用代码<br />    Context initContext = new InitialContext();<br />      Context envContext  = (Context)initContext.lookup("java:/comp/env");      <br />      DataSource ds = (DataSource)envContext.lookup("test/jdbc/Data"); <br /> // test/jdbc/Data是数据源的名字  <br />      Connection conn = ds.getConnection(); <br /> Statement stmt = conn.createStatement();</p>
		<p> </p>
<img src ="http://www.blogjava.net/cader/aggbug/57013.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cader/" target="_blank">负人博客</a> 2006-07-06 18:29 <a href="http://www.blogjava.net/cader/archive/2006/07/06/57013.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jasperreport和ireport应用</title><link>http://www.blogjava.net/cader/archive/2006/07/06/56993.html</link><dc:creator>负人博客</dc:creator><author>负人博客</author><pubDate>Thu, 06 Jul 2006 09:34:00 GMT</pubDate><guid>http://www.blogjava.net/cader/archive/2006/07/06/56993.html</guid><wfw:comment>http://www.blogjava.net/cader/comments/56993.html</wfw:comment><comments>http://www.blogjava.net/cader/archive/2006/07/06/56993.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cader/comments/commentRss/56993.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cader/services/trackbacks/56993.html</trackback:ping><description><![CDATA[
		<font size="4">由于公司的项目需要这几天一直在研究jasperreport和ireport，到现在已经研究了一段时间了，在学习过程中遇到了一些问题同时也学到了一些技巧，特做小文以享于他人.</font>
		<div>
				<font size="4">1。工具简介</font>
		</div>
		<div>
				<font size="4">      jasperreport和ireport都是开源软件，可以免费下载。</font>
		</div>
		<div>
				<font size="4">ireport使jasperreport的一个可视化设计工具，里面集成了一些画图工具和数据库的操作，用ireport做出来的是一个jrxml文件也可以在里面直接编辑此文件（比较麻烦）。经过运行编译后生成jasper文件，这个文件是我们需要的东西，将来我们做报表读取的就是这个文件。工具的其他一些东西像下载地址之类的网上到处都是，在此就不细说了。下面我就把我这段时间遇到的问题在这做一个总结。</font>
		</div>
		<div>
				<font size="4">2。用ireport遇到的一些问题</font>
		</div>
		<div>
				<font size="4">      （1）解决里面的中文问题：</font>
		</div>
		<div>
				<font size="4">              </font>
				<font size="4">在pdf里面不能显示中文</font>
		</div>
		<div>
				<font size="4">              解决方案：</font>
		</div>
		<div>
				<font size="4">                 1。将itextasian.jar下载下来（google一搜就有）放到  ireport目录底下的lib文件夹下即可。有人还说要再放一个itext.jar到</font>
		</div>
		<div>
				<font size="4">lib目录下，但是在我的应用过程中发现不放此文件也可以。</font>
		</div>
		<div>
				<font size="4">                 2。将每个文本域属性当中的PDF font name改为STSong－Light并且将PDF encoding里面的设置改为UniGB-UCS2-H (Chinese Simplified)，此时应该差不多了。</font>
		</div>
		<div>
				<font size="4">       （2） 解决IE里面的斜线问题</font>
		</div>
		<div>
				<font size="4">            用ireport画的斜线无法在IE里面显示（因为html本身无法支持斜线）</font>
		</div>
		<div>
				<font size="4">            解决方案：将需要显示斜线的地方做成图片，然后利用image控件加载图片即可</font>
		</div>
		<div>
				<font size="4">          （3）解决IE里面无法显示的问题</font>
		</div>
		<div>
				<font size="4">                 在ireport里面画出的图表无法在ie里面显示</font>
		</div>
		<div>
				<font size="4">                 解决方案：在Ireport里面画图的时候不要用直线工具，里面的线全部用static text文本框的border画出。也就是说，里面的图表全部都是用文本框堆积成的。切记：图表里面的所有元素都不能交叉，如果有一点交叉或重叠，在IE里面都是显示不全的。<br /></font>
		</div>
		<div>
				<font size="4">3。应用时常见的几种方式：<br />       由于html自身的局限性，以及html显示的问题，现在在网络上传输的打印很多都采用pdf格式输出。jasperreport对pdf做了很好的支持！<br />       个人根据需要可以改写jasperreport的代码，以使之更好的为自己服务。<br /></font>
				<div>
						<font size="4">     1.可以把数据放到map中传递到pdf打印页面（一般适合类似票据打印）<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"><span><font face="Times New Roman">    </font></span></span></font>
				</div>
				<div>
						<font face="Times New Roman">
								<font size="4">
										<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'">
												<span>        </span>Map parameters = </span>
										<b>
												<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: #7f0055; FONT-FAMILY: 'Courier New'">new </span>
										</b>
										<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'">HashMap();//参数</span>
								</font>
						</font>
				</div>
				<div>
						<p align="left">
								<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'">
										<span>
												<font face="Times New Roman" size="4">        通过把map输出到ireport模板中，得到要打印的票据</font>
										</span>
								</span>
						</p>
						<p align="left">
								<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'">
										<span>
												<font face="Times New Roman" size="4">     2.可以把结果集放到collection中，这样想打印什么都可以了！</font>
										</span>
								</span>
						</p>
						<p align="left">
								<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'">
										<span>
												<font face="Times New Roman" size="4">     3.剩下的就是写sql了，通过map把参数传递过去，利用参数就可以写要查询的结果集了。</font>
										</span>
								</span>
						</p>
						<p align="left">
								<span lang="EN-US" style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'">
										<span>
												<font face="Times New Roman" size="4">注：在ireport通过查询语句取结果集的时候发现定义的参数顺序和ireport生成模板的顺序不一致，这样在sql中如果条件是(a,b,c)结果它把参数的顺序写成了(b,c,a)或者什么的。不知道这是不是ireport的bug。</font>
										</span>
								</span>
						</p>
				</div>
		</div>
<img src ="http://www.blogjava.net/cader/aggbug/56993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cader/" target="_blank">负人博客</a> 2006-07-06 17:34 <a href="http://www.blogjava.net/cader/archive/2006/07/06/56993.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>log4j和common-logging结合使用</title><link>http://www.blogjava.net/cader/archive/2006/07/06/56991.html</link><dc:creator>负人博客</dc:creator><author>负人博客</author><pubDate>Thu, 06 Jul 2006 09:31:00 GMT</pubDate><guid>http://www.blogjava.net/cader/archive/2006/07/06/56991.html</guid><wfw:comment>http://www.blogjava.net/cader/comments/56991.html</wfw:comment><comments>http://www.blogjava.net/cader/archive/2006/07/06/56991.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cader/comments/commentRss/56991.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cader/services/trackbacks/56991.html</trackback:ping><description><![CDATA[     在我们的日常开发中，经常需要通过输出一些信息进行程序的调试，如果到处都用system.out.println()则在项目发布之后要逐一删除，而log4j提供了一种新的调试输出机制以解决输出的问题。log4j的原理是使用一个配置文件log4j.properties进行管理，在调试的时候可以把输出级别调低，项目正式发布之后把级别调高，这样以前的一些输出就可以屏蔽了，不用到程序当中再进行逐一删除。关于log4j的介绍网上很多，随便google一下就可以顺利的使用log4j了。在这里介绍一下log4j和common-logging的联合使用，因为在很多框架当中都是结合了common-logging和log4j的应用。像spring之类的框架里面存在很多debug输出，用common-logging可以很容易的打印输出，以用于了解spring的运行机制！<font color="#006400" size="5"></font><div><font color="#000000"><font size="3">  <font face="黑体, Simhei"> 使用介绍:</font></font></font></div><div><font color="#000000" size="3">   1.下载jar包：</font></div><div><font color="#000000" size="3">       log4j-1.2.9.jar和commons-logging.jar</font></div><div><font color="#000000" size="3">   2.在web目录的classes下面添加两个文件：</font><font color="#000000" size="3"><strong>commons-logging.properties和log4j.properties</strong></font><font color="#000000" size="3">      <br />      <strong>log4j.properties(例子):</strong></font></div><div><font color="#000000" size="3">          ##LOGGERS##<br />          #define a logger </font></div><div><font color="#000000" size="3">          log4j.rootLogger=INFO,console,file<br />          #log4j.rootLogger=DEBUG,console,file</font></div><div><font color="#000000" size="3">          ##APPENDERS##<br />         #define an appender named console,which is set to be a ConsoleAppender<br />         log4j.appender.console=org.apache.log4j.ConsoleAppender</font></div><div><font color="#000000" size="3">         #define an appender named file,which is set to be a RollingFileAppender<br />         log4j.appender.file=org.apache.log4j.RollingFileAppender<br />         log4j.appender.file.File=log-wst.txt</font></div><div><font color="#000000" size="3">         ##LAYOUTS##<br />         #assign a SimpleLayout to console appender<br />         log4j.appender.console.layout=org.apache.log4j.SimpleLayout</font></div><div><font color="#000000" size="3">         #assign a PatternLayout to file appender<br />         log4j.appender.file.layout=org.apache.log4j.PatternLayout<br />         log4j.appender.file.layout.ConversionPattern=%p - %m%n</font><font color="#000000" size="3">      </font></div><div><font color="#000000" size="3">      <strong>commons-logging.properties(例子)</strong></font></div><div><font color="#000000" size="3">          ##<br />          org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog</font></div><div><font color="#000000" size="3">   3.应用实例：</font></div><div><font color="#000000" size="3">     package com.wes.test;</font></div><div><font color="#000000" size="3">     import org.apache.commons.logging.Log;<br />     import org.apache.commons.logging.LogFactory;</font></div><div><font color="#000000" size="3">    public abstract class BaseClass{<br />         /** 用于日志输出 */<br />         protected Log log = LogFactory.getLog(this.getClass());<br />    }<br />    这样在子类中可以直接调用log输出即可:<br />   public class DerivedClass extends BaseClass {<br />         pulbic void test() {<br />             //如果log4j.properties文件配置的级别&lt;=info则可以正常输出(info/debug) <br />            log.info("这是info级别的输出");   <br />             //如果log4j.properties文件的级别为debug则可以正常输出(debug) <br />            log.debug("这是debug级别的输出");<br />         }<br />   }<br /></font></div><p> </p><img src ="http://www.blogjava.net/cader/aggbug/56991.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cader/" target="_blank">负人博客</a> 2006-07-06 17:31 <a href="http://www.blogjava.net/cader/archive/2006/07/06/56991.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>