﻿<?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-storm56</title><link>http://www.blogjava.net/storm56/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 07:53:18 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 07:53:18 GMT</pubDate><ttl>60</ttl><item><title>weblogic集成birt的问题解决</title><link>http://www.blogjava.net/storm56/archive/2008/05/29/203881.html</link><dc:creator>风中的舞者</dc:creator><author>风中的舞者</author><pubDate>Thu, 29 May 2008 08:56:00 GMT</pubDate><guid>http://www.blogjava.net/storm56/archive/2008/05/29/203881.html</guid><wfw:comment>http://www.blogjava.net/storm56/comments/203881.html</wfw:comment><comments>http://www.blogjava.net/storm56/archive/2008/05/29/203881.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/storm56/comments/commentRss/203881.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/storm56/services/trackbacks/203881.html</trackback:ping><description><![CDATA[birt 集成到 weblogic 9中,老是出现问题:<br />
<br />
java.lang.NoSuchMethodError: org.mozilla.javascript.ImporterTopLevel.initStandar<br />
dObjects(Lorg/mozilla/javascript/Context;Z)V<br />
at org.eclipse.birt.core.script.ScriptContext.&lt;init&gt;(ScriptContext.java:<br />
81)<br />
at org.eclipse.birt.report.engine.executor.ExecutionContext.&lt;init&gt;(Execu<br />
tionContext.java:248)<br />
at org.eclipse.birt.report.engine.api.impl.EngineTask.&lt;init&gt;(EngineTask.<br />
java:118)<br />
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.&lt;init&gt;(RunAn<br />
dRenderTask.java:54)<br />
at org.eclipse.birt.report.engine.api.impl.ReportEngineHelper.createRunA<br />
ndRenderTask(ReportEngineHelper.java:215)<br />
at org.eclipse.birt.report.engine.api.ReportEngine.createRunAndRenderTas<br />
k(ReportEngine.java:258)<br />
<br />
<br />
<br />
google后,发现两个解决方案,<br />
<br />
一、替换weblogic.jar中的js.jar文件，<br />
麻烦，有隐串<br />
<br />
<br />
<br />
二、在 web应用中加入<br />
&lt;prefer-web-inf-classes&gt;true&lt;/prefer-web-inf-classes&gt;<br />
<br />
导致应用无法发布成功。<br />
<br />
<br />
最后自己想出一种方案:<br />
在weblogic的应动域目录中，setDomainEnv.cmd文件中， 更改如下：<br />
<p>@REM SET THE CLASSPATH</p>
<p>set CLASSPATH=%WL_HOME%\server\lib\mysql5.jar<span style="color: #ff0000">;%WL_HOME%\server\lib\js.jar;%</span>PRE_CLASSPATH%;%WEBLOGIC_CLASSPATH%;%POST_CLASSPATH%;%WLP_POST_CLASSPATH%<br />
</p>
<br />
将js.jar 文件复制到 server/lib目录中。在类路径中设置优先载入。<br />
<br />
pdf电子书下载&nbsp;&nbsp; soa.hntky.com<br />
<br />
 <img src ="http://www.blogjava.net/storm56/aggbug/203881.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/storm56/" target="_blank">风中的舞者</a> 2008-05-29 16:56 <a href="http://www.blogjava.net/storm56/archive/2008/05/29/203881.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>向大家推荐一下java pdf下载的网站(全英文章) (速度快)</title><link>http://www.blogjava.net/storm56/archive/2008/03/04/183672.html</link><dc:creator>风中的舞者</dc:creator><author>风中的舞者</author><pubDate>Tue, 04 Mar 2008 05:01:00 GMT</pubDate><guid>http://www.blogjava.net/storm56/archive/2008/03/04/183672.html</guid><wfw:comment>http://www.blogjava.net/storm56/comments/183672.html</wfw:comment><comments>http://www.blogjava.net/storm56/archive/2008/03/04/183672.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/storm56/comments/commentRss/183672.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/storm56/services/trackbacks/183672.html</trackback:ping><description><![CDATA[向大家推荐一下java pdf下载的网站(全英文章) <br />
http://soa.hntky.com<br />
<img src ="http://www.blogjava.net/storm56/aggbug/183672.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/storm56/" target="_blank">风中的舞者</a> 2008-03-04 13:01 <a href="http://www.blogjava.net/storm56/archive/2008/03/04/183672.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>向大家推荐一个SOA,J2EE,XML相关PDF下载网站</title><link>http://www.blogjava.net/storm56/archive/2007/05/25/119875.html</link><dc:creator>风中的舞者</dc:creator><author>风中的舞者</author><pubDate>Fri, 25 May 2007 00:36:00 GMT</pubDate><guid>http://www.blogjava.net/storm56/archive/2007/05/25/119875.html</guid><wfw:comment>http://www.blogjava.net/storm56/comments/119875.html</wfw:comment><comments>http://www.blogjava.net/storm56/archive/2007/05/25/119875.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/storm56/comments/commentRss/119875.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/storm56/services/trackbacks/119875.html</trackback:ping><description><![CDATA[<p>soa.hntky.com<br>很多的电子书，速度较快，可以搜索</p>
<img src ="http://www.blogjava.net/storm56/aggbug/119875.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/storm56/" target="_blank">风中的舞者</a> 2007-05-25 08:36 <a href="http://www.blogjava.net/storm56/archive/2007/05/25/119875.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pb 操作 Excel</title><link>http://www.blogjava.net/storm56/archive/2006/10/20/76322.html</link><dc:creator>风中的舞者</dc:creator><author>风中的舞者</author><pubDate>Fri, 20 Oct 2006 02:09:00 GMT</pubDate><guid>http://www.blogjava.net/storm56/archive/2006/10/20/76322.html</guid><wfw:comment>http://www.blogjava.net/storm56/comments/76322.html</wfw:comment><comments>http://www.blogjava.net/storm56/archive/2006/10/20/76322.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/storm56/comments/commentRss/76322.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/storm56/services/trackbacks/76322.html</trackback:ping><description><![CDATA[
		<p> </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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">int</span>
				<span style="COLOR: #000000">    ret      <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />string filename<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />string filename2<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />string resume<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />filename</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">d:\smis2\xmk.xls</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />filename2</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">d:\smis2\2006050120xmk.xls</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />resume</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">d:\smis2\resume.xlw</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />filedelete(resume)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />oleobject    xlapp,xlsub     <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />xlapp</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">create oleobject<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />ret</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">xlapp.connecttonewobject(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">excel.sheet</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">)   <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">ret=xlapp.connecttonewobject("excel.application")   </span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000">    ret</span>
				<span style="COLOR: #000000">&lt;</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">    then      <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />             messagebox(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">你的电脑未安装Excel</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">,string(ret))      <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />             </span>
				<span style="COLOR: #0000ff">return</span>
				<span style="COLOR: #000000">      <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />end    </span>
				<span style="COLOR: #0000ff">if</span>
				<span style="COLOR: #000000">      <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />xlapp.application.workbooks.open(filename)      <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />xlsub</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">xlapp.application.activeworkbook.worksheets[</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">]      <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />xlsub.cells[</span>
				<span style="COLOR: #000000">4</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">2</span>
				<span style="COLOR: #000000">].value</span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">我是吴吴</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />xlapp.saveas(filename2,</span>
				<span style="COLOR: #0000ff">true</span>
				<span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />messagebox(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">aa</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">aa</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />xlapp.application.save(</span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">'</span>
				<span style="COLOR: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">xlapp.application.close()</span>
				<span style="COLOR: #008000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #000000">xlapp.application.quit()<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />xlsub.disconnectobject()<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />xlapp.disconnectobject()<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />destroy xlsub<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />destroy xlapp<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
		</div>
<img src ="http://www.blogjava.net/storm56/aggbug/76322.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/storm56/" target="_blank">风中的舞者</a> 2006-10-20 10:09 <a href="http://www.blogjava.net/storm56/archive/2006/10/20/76322.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sun java api</title><link>http://www.blogjava.net/storm56/archive/2006/10/20/76296.html</link><dc:creator>风中的舞者</dc:creator><author>风中的舞者</author><pubDate>Fri, 20 Oct 2006 01:01:00 GMT</pubDate><guid>http://www.blogjava.net/storm56/archive/2006/10/20/76296.html</guid><wfw:comment>http://www.blogjava.net/storm56/comments/76296.html</wfw:comment><comments>http://www.blogjava.net/storm56/archive/2006/10/20/76296.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/storm56/comments/commentRss/76296.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/storm56/services/trackbacks/76296.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Introducing the JavaMail API				The JavaMail API is an optional package (standard extension) for reading, composing, and sending electronic messages. You use the package to create Mail User Agent ...&nbsp;&nbsp;<a href='http://www.blogjava.net/storm56/archive/2006/10/20/76296.html'>阅读全文</a><img src ="http://www.blogjava.net/storm56/aggbug/76296.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/storm56/" target="_blank">风中的舞者</a> 2006-10-20 09:01 <a href="http://www.blogjava.net/storm56/archive/2006/10/20/76296.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中的邮件处理</title><link>http://www.blogjava.net/storm56/archive/2006/10/19/76203.html</link><dc:creator>风中的舞者</dc:creator><author>风中的舞者</author><pubDate>Thu, 19 Oct 2006 08:10:00 GMT</pubDate><guid>http://www.blogjava.net/storm56/archive/2006/10/19/76203.html</guid><wfw:comment>http://www.blogjava.net/storm56/comments/76203.html</wfw:comment><comments>http://www.blogjava.net/storm56/archive/2006/10/19/76203.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/storm56/comments/commentRss/76203.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/storm56/services/trackbacks/76203.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="0" width="90%" align="center" border="0">
				<tbody>
						<tr>
								<th class="f24">
										<p>
												<font color="#000000">Javamail操作指南(二)</font>
										</p>
								</th>
						</tr>
						<tr>
								<td align="middle" height="20">
										<p>
												<small>
														<font color="#000000">作者：Bromon 来源:http://blog.itpub.net (2005-06-28 13:30:54)</font>
												</small>
										</p>
								</td>
						</tr>
						<tr>
								<td>
										<p>
												<font color="#000000">
														<br />
												</font> </p>
								</td>
						</tr>
						<tr>
								<td>
										<p>
												<font color="#000000">
														<!---广告 开- -->
														<!---广告 结- -->
												</font>
										</p>
								</td>
						</tr>
						<tr>
								<td class="l17">
										<font class="f14" id="zoom">
												<!-- 正文begin -->
												<!--StartFragment -->
												<p>
														<font color="#000000">怎样才算比较完整的Javamail操作指南？我想应该包括绝大多数基本的email操作，能够应付一般的应用。在本指南中打算囊括以下内容：</font>
												</p>
												<p>
														<font color="#000000"> ● 发送email：包括文本邮件、HTML邮件、带附件的邮件、SMTP验证<br /> ● 接收email：pop3远程连接、收取不同MIME的邮件、处理附件</font>
												</p>
												<p>
														<font color="#000000"> 我想有了上述功能的介绍，应该可以应付很多email的相关应用了。所以请允许我给本文拟了一个比较狂妄的名字，这样才能保证收视率，。还是那句话，写这个post的原因就是没有在网上看到更全面的，你看过的话记得要告诉我。</font>
												</p>
												<p>
														<font color="#000000">  下面的所有例子都经过实际测试，你可以说它写得不够OO，不够plugable，但是它的确是可以参考的。自从有了javamail，发垃圾邮件就方便多了。本文代码多说明少，这倒不是我偷懒，而是很多东西都涉及pop3等协议的规范，如果不了解这些规范的话，由的东西我实在不知道怎么跟你解释；如果了解的话，那我基本上就不用再解释。所以本着实用的原则就省略了，由兴趣的话自己去翻翻协议规范。</font>
												</p>
												<p>
														<font color="#000000"> 废话少说，首先需要配置环境。需要的包是mail.jar和activation.jar。高版本的J2SDK EE自带。地址嘛，再java.sun.com上搜索一下，很容易找到。放到classpath中就KO。</font>
												</p>
												<p>
														<font color="#000000"> 一、 邮件的发送</font>
												</p>
												<p>
														<font color="#000000"> 下面了弄个发邮件的Hello World，热热身：</font>
												</p>
												<p>
														<font color="#000000"> /*************<br /> Name:TextMailSender.java<br /> Author:Bromon<br /> Version:1.0<br /> Date:2004-4-26<br /> Note:发送email到bromon@163.com,需要安装SMTP服务器<br /> *************/<br /> package org.bromon.mail;<br /> import javax.mail.*;<br /> import javax.mail.internet.*;<br /> import java.util.*;<br /> public class TextMailSender<br /> {<br /> public static void main(String args[])<br /> {<br />  try<br />  {<br />   Properties prop=new Properties();<br />   //指定要使用的SMTP服务器为bromon2k<br />   prop.put("mail.smtp.host","bromon2k");<br />   Session mailSession=Session.getDefaultInstance(prop);</font>
												</p>
												<p>
														<font color="#000000">   //发件人地址<br />   InternetAddress from=new InternetAddress("bromon@bromon2k");<br />   //收件人地址<br />   InternetAddress to=new InternetAddress("bromon@163.com");<br />   <br />   MimeMessage msg=new MimeMessage(mailSession);<br />   msg.setFrom(from);<br />   msg.addRecipient(javax.mail.Message.RecipientType.TO,to);<br />   //发信日期<br />   msg.setSentDate(new java.util.Date());<br />   //title<br />   msg.setSubject("你好");<br />   //邮件正文<br />   msg.setText("hello,bromon");<br />   Transport.send(msg);<br />  }catch(Exception e)<br />  {<br />   System.out.println(e);<br />  }<br /> }<br /> } </font>
												</p>
												<p>
														<br />
														<font color="#000000">  程序很简单，但是它是不能运行的（倒）。除非你的机器上安装了一个SMTP服务器，而且你的机器还叫做bromon2k。写这么一段不能执行的程序不是为了找打，而是让各位对javamail有个基本印象，我就懒得改了。下面演示的是如何通过163、sohu等email服务商提供的免费邮箱来发邮件，基本操作和上面的一样，只是多一个SMTP验证而已：</font>
												</p>
												<p>
														<font color="#000000"> /*<br /> * Created on 2004-4-26<br /> */<br /> package org.bromon.mail;<br /> import javax.mail.*;<br /> import java.util.*;<br /> import javax.mail.internet.*;</font>
												</p>
												<p>
														<font color="#000000"> /**<br /> * @author Bromon<br /> */<br /> public class SenderWithSMTPVer<br /> {<br /> String host="";<br /> String user="";<br /> String password="";</font>
												</p>
												<p>
														<font color="#000000"> public void setHost(String host)<br /> {<br />  this.host=host;<br /> }</font>
												</p>
												<p>
														<font color="#000000"> public void setAccount(String user,String password)<br /> {<br />  this.user=user;<br />  this.password=password;<br /> }</font>
												</p>
												<p>
														<font color="#000000"> public void send(String from,String to,String subject,String content)<br /> {<br />  Properties props = new Properties();<br />  props.put("mail.smtp.host", host);//指定SMTP服务器<br />  props.put("mail.smtp.auth", "true");//指定是否需要SMTP验证<br />  try<br />  {<br />   Session mailSession = Session.getDefaultInstance(props);<br />   <br />   mailSession.setDebug(true);//是否在控制台显示debug信息<br />   <br />   Message message=new MimeMessage(mailSession);<br />   message.setFrom(new InternetAddress(from));//发件人<br />   message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));//收件人<br />   <br />   message.setSubject(subject);//邮件主题<br />   message.setText(content);//邮件内容<br />   message.saveChanges();<br />   <br />   Transport transport = mailSession.getTransport("smtp");<br />   transport.connect(host, user, password);<br />   transport.sendMessage(message, message.getAllRecipients());<br />   transport.close();<br />  }catch(Exception e)<br />  {<br />   System.out.println(e);<br />  }<br />  <br /> }</font>
												</p>
												<p>
														<font color="#000000"> public static void main(String args[])<br /> {<br />  SenderWithSMTPVer sm=new SenderWithSMTPVer();</font>
												</p>
												<p>
														<font color="#000000">  sm.setHost("smtp.163.com");//指定要使用的邮件服务器<br />  sm.setAccount("abc","123");//指定帐号和密码</font>
												</p>
												<p>
														<font color="#000000">  /*<br /> * @param String 发件人的地址<br />   * @param String 收件人地址<br />   * @param String 邮件标题<br />   * @param String 邮件正文<br />  */<br />  sm.send("abc@163.com","bromon@163.com","标题","内容");<br /> }</font>
												</p>
												<p>
														<font color="#000000"> } </font>
												</p>
												<p>
														<br />
														<font color="#000000"> 这段程序好像也不需要解释了吧，把SMTP地址、帐号、密码等配置信息写到Properties里面，Java里面很多API都需要这么干，比如再程序中加入对代理服务器的支持等。</font>
												</p>
												<p>
														<font color="#000000"> 上面的程序修改一下服务器地址、帐号、密码就可以使用，非常简单。</font>
												</p>
												<p>
														<font color="#000000"> 如何发送一个HTML格式的Email呢？也很简单，再邮件正文中写入HTML代码，然后指定邮件的ContentType就OK，下面只给出关键代码：</font>
												</p>
												<p>
														<font color="#000000"> ………..<br /> MimeMessage msg=new MimeMessage(mailSession);<br /> msg.setContent(content,"text/html");<br /> msg.setText(“&lt;html&gt;&lt;body&gt;&lt;h1&gt;下面的，你们好吗?&lt;/body&gt;&lt;/html&gt;”);<br /> ………..</font>
												</p>
												<p>
														<font color="#000000"> 下面是发送带有附件的email，稍微复杂一点，而且和前面的程序有一些不同，请仔细一点，同时需要一点IO的知识。相同的代码就不在列出，只写关键部分，谁都想偷懒不是？</font>
												</p>
												<p>
														<font color="#000000"> import javax.mail.*;<br /> import javax.mail.internet.*;<br /> import javax.activation.*;<br /> import java.util.*;<br /> ……….<br /> MimeMessage msg=new MimeMessage(mailSession);<br /> msg.setSentDate(new Date());<br /> msg.setSubject("hello");</font>
												</p>
												<p>
														<font color="#000000"> MimeBodyPart textBodyPart=new MimeBodyPart();<br /> textBodyPart.setText(“邮件正文”);</font>
												</p>
												<p>
														<font color="#000000"> MimeBodyPart fileBodyPart=new MimeBodyPart();<br /> FileDataSource fds=new FileDataSource("GIS.rar");//要发送的附件<br /> fileBodyPart.setDataHandler(new DataHandler(fds));<br /> fileBodyPart.setFileName(fds.getName());<br /> Multipart container=new MimeMultipart();<br /> container.addBodyPart(textBodyPart);<br /> container.addBodyPart(fileBodyPart);<br /> msg.setContent(container);<br /> Transport.send(msg);<br /> ………… </font>
												</p>
												<p>
														<br />
														<font color="#000000"> 这里的msg由两个MimeBodyPart构成，这个东西解释起来基本上比较难，如果不了解相关的规范就不太好解释，如果了解的话，我就不用解释了，这个这个………唉。</font>
												</p>
												<p>
														<font color="#000000">
																<!--StartFragment -->
														</font>
												</p>
												<p>
														<font color="#000000">二、 邮件的收取 </font>
												</p>
												<p>
														<font color="#000000">
														</font>
												</p>
												<p>
														<font color="#000000"> 通常情况下我们都使用pop3协议来收邮件，IMAP嘛现在就不涉及了。收邮件的功能虽然我用了很多时间才基本搞清楚，不过讲起来就so easy了，一个程序就可以基本包括。</font>
												</p>
												<p>
														<font color="#000000"> 邮件大致可以分三种：纯文本邮件、含有其他数据的文本邮件、含有附件的邮件。</font>
												</p>
												<p>
														<br />
														<font color="#000000"> CODE  <br /> /*<br /> * Created on 2004-4-26<br /> */<br /> package org.bromon.mail;<br /> import javax.mail.*;<br /> import java.util.*;<br /> import java.io.*;</font>
												</p>
												<p>
														<font color="#000000"> /**<br /> * @author Bromon<br /> */<br /> public class Receiver<br /> {<br /> Folder inbox;<br /> Store store;</font>
												</p>
												<p>
														<font color="#000000"> //连接邮件服务器，获得所有邮件的列表<br /> public Message[] getMail(String host,String name,String password) throws Exception<br /> {<br />  Properties prop=new Properties();<br />  prop.put("mail.pop3.host",host);<br />  Session session=Session.getDefaultInstance(prop);<br />  store=session.getStore("pop3");<br />  store.connect(host,name,password);<br />  <br />  inbox=store.getDefaultFolder().getFolder("INBOX");<br />  inbox.open(Folder.READ_ONLY);<br />  <br />  Message[] msg=inbox.getMessages();<br />  <br />  FetchProfile profile=new FetchProfile();<br />  profile.add(FetchProfile.Item.ENVELOPE);<br />  inbox.fetch(msg,profile);<br />  <br />  return(msg);<br /> }</font>
												</p>
												<p>
														<font color="#000000"> //处理任何一种邮件都需要的方法<br /> private void handle(Message msg) throws Exception<br /> {<br />  System.out.println("邮件主题:"+msg.getSubject());<br />  System.out.println("邮件作者:"+msg.getFrom()[0].toString());<br />  System.out.println("发送日期:"+msg.getSentDate());<br /> }</font>
												</p>
												<p>
														<font color="#000000"> //处理文本邮件<br /> public void handleText(Message msg) throws Exception<br /> {<br />  this.handle(msg);<br />  System.out.println("邮件内容:"+msg.getContent());<br /> }</font>
												</p>
												<p>
														<font color="#000000"> //处理Multipart邮件，包括了保存附件的功能<br /> public void handleMultipart(Message msg) throws Exception<br /> {<br />  String disposition;<br />  BodyPart part;<br />  <br />  Multipart mp=(Multipart)msg.getContent();<br />  int mpCount=mp.getCount();//Miltipart的数量,用于除了多个part,比如多个附件<br />  for(int m=0;m&lt;mpCount;m++)<br />  {<br />   this.handle(msg);<br />   <br />   part=mp.getBodyPart(m);<br />   disposition=part.getDisposition();<br />   if(disposition!=null &amp;&amp; disposition.equals(Part.ATTACHMENT))//判断是否有附件<br />   {<br />    //this.saveAttach(part);//这个方法负责保存附件，注释掉是因为附件可能有病毒，请清理信箱之后再取掉注释<br />   }else{<br />    System.out.println(part.getContent());<br />   }<br />  }<br /> }</font>
												</p>
												<p>
														<font color="#000000"> private void saveAttach(BodyPart part) throws Exception<br /> {<br />  String temp=part.getFileName();//得到未经处理的附件名字<br />  String s=temp.substring(11,temp.indexOf("?=")-1);//去到header和footer<br />  <br />  //文件名一般都经过了base64编码,下面是解码<br />  String fileName=this.base64Decoder(s);<br />  System.out.println("有附件:"+fileName);<br />  <br />  InputStream in=part.getInputStream();<br />  FileOutputStream writer=new FileOutputStream(new File(fileName));<br />  byte[] content=new byte[255];<br />  int read=0;<br />  while((read=in.read(content))!=-1)<br />  {<br />   writer.write(content);<br />  }<br />  writer.close();<br />  in.close();<br /> }</font>
												</p>
												<p>
														<font color="#000000"> //base64解码<br /> private String base64Decoder(String s) throws Exception<br /> {<br />  sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();<br />  byte[] b=decoder.decodeBuffer(s);<br />  <br />  return(new String(b));<br /> }</font>
												</p>
												<p>
														<font color="#000000"> //关闭连接<br /> public void close() throws Exception<br /> {<br />  if(inbox!=null)<br />  {<br />   inbox.close(false);<br />  }<br />  <br />  if(store!=null)<br />  {<br />   store.close();<br />  }<br /> }</font>
												</p>
												<p>
														<font color="#000000"> public static void main(String args[])<br /> {<br />  String host="pop.163.com";<br />  String name="bromon";<br />  String password="My password";<br />  <br />  Receiver receiver=new Receiver();<br />  <br />  try<br />  {   <br />   Message[] msg=receiver.getMail(host,name,password);<br />   <br />   for(int i=0;i&lt;msg.length;i++)<br />   {<br />    if(msg[i].isMimeType("text/*"))//判断邮件类型<br />    {<br />     receiver.handleText(msg[i]);<br />    }else{<br />     receiver.handleMultipart(msg[i]);<br />    }<br />    System.out.println("****************************");<br />   }<br />   receiver.close();<br />  }catch(Exception e)<br />  {<br />   System.out.println(e);<br />  }<br /> }<br /> } </font>
												</p>
												<p>
														<br />
														<font color="#000000">  没有习惯读java代码的兄弟可能会觉得麻烦了一点，其中有个小问题，下载的附件会再文件名后面加上一个”#”符号，不知道这是javamail的特别处理还是pop3的规范。通过程序更改文件名很简单，就不说了。对于email还有很多其他的操作，可以自己取查看一下javadoc，我就不影响大家探索的乐趣了。在Properties里配置代理服务器，可以让程序通过代理收发邮件，一般的HTTP、socks 4、socks 5都支持。</font>
												</p>
												<!-- 正文end -->
										</font>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/storm56/aggbug/76203.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/storm56/" target="_blank">风中的舞者</a> 2006-10-19 16:10 <a href="http://www.blogjava.net/storm56/archive/2006/10/19/76203.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开源课件管理系统</title><link>http://www.blogjava.net/storm56/archive/2006/09/19/70614.html</link><dc:creator>风中的舞者</dc:creator><author>风中的舞者</author><pubDate>Tue, 19 Sep 2006 12:51:00 GMT</pubDate><guid>http://www.blogjava.net/storm56/archive/2006/09/19/70614.html</guid><wfw:comment>http://www.blogjava.net/storm56/comments/70614.html</wfw:comment><comments>http://www.blogjava.net/storm56/archive/2006/09/19/70614.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/storm56/comments/commentRss/70614.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/storm56/services/trackbacks/70614.html</trackback:ping><description><![CDATA[
		<a href="http://www.dokeos.com/howto.php">http://www.dokeos.com/howto.php</a>
<img src ="http://www.blogjava.net/storm56/aggbug/70614.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/storm56/" target="_blank">风中的舞者</a> 2006-09-19 20:51 <a href="http://www.blogjava.net/storm56/archive/2006/09/19/70614.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>www.cms4j.com</title><link>http://www.blogjava.net/storm56/archive/2006/08/12/63228.html</link><dc:creator>风中的舞者</dc:creator><author>风中的舞者</author><pubDate>Sat, 12 Aug 2006 09:26:00 GMT</pubDate><guid>http://www.blogjava.net/storm56/archive/2006/08/12/63228.html</guid><wfw:comment>http://www.blogjava.net/storm56/comments/63228.html</wfw:comment><comments>http://www.blogjava.net/storm56/archive/2006/08/12/63228.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/storm56/comments/commentRss/63228.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/storm56/services/trackbacks/63228.html</trackback:ping><description><![CDATA[s<img src ="http://www.blogjava.net/storm56/aggbug/63228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/storm56/" target="_blank">风中的舞者</a> 2006-08-12 17:26 <a href="http://www.blogjava.net/storm56/archive/2006/08/12/63228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在CMP实体BEAN中使用BLOB数据类型 </title><link>http://www.blogjava.net/storm56/archive/2006/06/19/53864.html</link><dc:creator>风中的舞者</dc:creator><author>风中的舞者</author><pubDate>Mon, 19 Jun 2006 15:51:00 GMT</pubDate><guid>http://www.blogjava.net/storm56/archive/2006/06/19/53864.html</guid><wfw:comment>http://www.blogjava.net/storm56/comments/53864.html</wfw:comment><comments>http://www.blogjava.net/storm56/archive/2006/06/19/53864.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/storm56/comments/commentRss/53864.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/storm56/services/trackbacks/53864.html</trackback:ping><description><![CDATA[
		<table class="buttomBorder" cellspacing="3" cellpadding="3" width="100%" border="0">
				<tbody>
						<tr>
								<td class="contentTitle" align="middle">在CMP实体BEAN中使用BLOB数据类型 
<hr width="70%" /></td>
						</tr>
						<tr>
								<td align="middle">2005-07-19   来源:matrix.org.cn  作者:matrix.org.cn</td>
						</tr>
						<tr>
								<td class="content" valign="top" align="left">
										<div id="articleview_summary">摘要：<br />在Oracle这样的关系数据库中，CLOB和BLOB类型被用来存放大对象。BOLB表示二进制大对象，这种数据类型通过用来保存图片，图象，视频等。CLOB表示字符大对象，能够存放大量基于字符的数据。JDBC定义java类型java.sql.Clob 和java.sql.Blob 对应数据库中的CLOB和BLOB类型。然而这两种类型并不能在实体BEAN中使用，因为这两个类没有被序列化（Serializable）。因此我们不能在CMP实体BEAN中定义java.sql.Clob或java.sql.Bl<br /><br /><br />在Oracle这样的关系数据库中，CLOB和BLOB类型被用来存放大对象。BOLB表示二进制大对象，这种数据类型通过用来保存图片，图象，视频等。CLOB表示字符大对象，能够存放大量基于字符的数据。<br /><br />JDBC定义java类型java.sql.Clob 和java.sql.Blob 对应数据库中的CLOB和BLOB类型。然而这两种类型并不能在实体BEAN中使用，因为这两个类没有被序列化（Serializable）。因此我们不能在CMP实体BEAN中定义java.sql.Clob或java.sql.Blob这两种数据类型。 <br /><br />如果我们要使用数据库的BLOB字段，我们必须在实体bean中声明CMP字段为 byte[] 并映射该字段到数据库的BLOB字段。如果要使用CLOB字段，我们需要使用定义CMP字段为 java.lang.String or char[] 。 <br /><br /><b>一个ENTITY的范例</b><br />在一个企业里，处于安全考虑，我们也许要将员工的图片保存到数据库中的表里。这里我们使用EmployeePicture 作为范例来代表员工的图片实体。这个EmployeePictureBean CMP有两个属性 empno, picture。 picture 字段被定义成byte[]型 。<br /><br />该EmployeePicture实体BEAN被映射到EMPPIC数据表， picture 属性被映射为EMPPIC 表中的picture 字段，该picture字段是定义为BLOB类型的。<br /><br />下面是EmployeePictureBean.java的部分核心代码：<br /><br /></div>
										<div class="overflow" id="divcontent">
												<pre class="overflow" title="pre code">public abstract class EmployeePictureBean implements EntityBean<br />{<br />  ....<br />  public abstract byte[] getPicture();<br />  public abstract void setPicture(byte[] newPicture);<br />  public Long ejbCreate(Long empno, byte[] newPicture)<br />  {<br />    setEmpno(empno);<br />    setPicture(newPicture);<br />    return empno;<br />  }<br /><br />  public void ejbPostCreate(Long empno, byte[] newPicture)<br />  {<br />  }<br />  ...<br />}</pre>
												<br />
												<br />如果我们使用OC4J 9.0.4 ，就需要在orion-ejb-jar.xml中定义实体BEAN属性到数据表字段的映射。如果使用了其他J2EE容器，就需要在相关厂商的部署描述符中定义O-R映射。下面演示在OC4J中的映射代码：<br /><br /><pre class="overflow" title="pre code">&lt;entity-deployment name="EmployeePicture" data-source="jdbc/OracleDS" table="EMPPIC"&gt;<br />  &lt;primkey-mapping&gt;<br />    &lt;cmp-field-mapping name="empno" persistence-name="EMPNO" persistence-type="NUMBER(8)"/&gt;<br />  &lt;/primkey-mapping&gt;<br />  &lt;cmp-field-mapping name="empno" persistence-name="EMPNO" persistence-type="NUMBER(8)"/&gt;<br />  &lt;cmp-field-mapping name="picture" persistence-name="PICTURE" persistence-type="BLOB"/&gt;<br />&lt;/entity-deployment&gt;</pre><br /><br /><br />客户端:<br />CMP实体BEAN的客户端没有什么特别的处理。唯一需要注意的是在update数据表时要使用BufferedInputStream 来读取IMAGE文件，但在检索数据表时使用OutputStream 。<br /><br />下面演示如何读取一个IMAGE文件，并创建一个BEAN实例:<br /><br /><pre class="overflow" title="pre code"> // Locate and open the file<br /><br />    File imgFile = new File(fileName);<br /><br />    long imgFileSize= imgFile.length();<br /><br />    // initialize the byte array<br /><br />    byte byteValue[] = new byte[(int)imgFileSize];<br /><br />    // Read the file into the byte array<br /><br />    InputStream is = new BufferedInputStream(new FileInputStream(imgFile));<br /><br />    int len = is.read(byteValue);<br /><br />    //Add the byte to the entity bean field<br /><br />    if(len!=imgFileSize)<br /><br />    {<br /><br />           System.out.println("Read bytes did not equal file size on directory");<br /><br />    }<br /><br />    else<br /><br />    {<br /><br />      EmployeePictureLocal employeePicture = empHome.create(empNo , byteValue);</pre><br /></div>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/storm56/aggbug/53864.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/storm56/" target="_blank">风中的舞者</a> 2006-06-19 23:51 <a href="http://www.blogjava.net/storm56/archive/2006/06/19/53864.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>weblogic 之数据源建立</title><link>http://www.blogjava.net/storm56/archive/2006/06/17/53442.html</link><dc:creator>风中的舞者</dc:creator><author>风中的舞者</author><pubDate>Sat, 17 Jun 2006 00:58:00 GMT</pubDate><guid>http://www.blogjava.net/storm56/archive/2006/06/17/53442.html</guid><wfw:comment>http://www.blogjava.net/storm56/comments/53442.html</wfw:comment><comments>http://www.blogjava.net/storm56/archive/2006/06/17/53442.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/storm56/comments/commentRss/53442.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/storm56/services/trackbacks/53442.html</trackback:ping><description><![CDATA[weblogic.jdbc.oracle.OracleDriver<br /><br />在weblogic 的控制台下建的连接池，数据源在workshop中无法建实体bean,<br />但在workshop中的却可以。关键就是要修改驱动程序如上。<img src ="http://www.blogjava.net/storm56/aggbug/53442.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/storm56/" target="_blank">风中的舞者</a> 2006-06-17 08:58 <a href="http://www.blogjava.net/storm56/archive/2006/06/17/53442.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>