posts - 17,  comments - 6,  trackbacks - 0
          birt 集成到 weblogic 9中,老是出現問題:

          java.lang.NoSuchMethodError: org.mozilla.javascript.ImporterTopLevel.initStandar
          dObjects(Lorg/mozilla/javascript/Context;Z)V
          at org.eclipse.birt.core.script.ScriptContext.<init>(ScriptContext.java:
          81)
          at org.eclipse.birt.report.engine.executor.ExecutionContext.<init>(Execu
          tionContext.java:248)
          at org.eclipse.birt.report.engine.api.impl.EngineTask.<init>(EngineTask.
          java:118)
          at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.<init>(RunAn
          dRenderTask.java:54)
          at org.eclipse.birt.report.engine.api.impl.ReportEngineHelper.createRunA
          ndRenderTask(ReportEngineHelper.java:215)
          at org.eclipse.birt.report.engine.api.ReportEngine.createRunAndRenderTas
          k(ReportEngine.java:258)



          google后,發現兩個解決方案,

          一、替換weblogic.jar中的js.jar文件,
          麻煩,有隱串



          二、在 web應用中加入
          <prefer-web-inf-classes>true</prefer-web-inf-classes>

          導致應用無法發布成功。


          最后自己想出一種方案:
          在weblogic的應動域目錄中,setDomainEnv.cmd文件中, 更改如下:

          @REM SET THE CLASSPATH

          set CLASSPATH=%WL_HOME%\server\lib\mysql5.jar;%WL_HOME%\server\lib\js.jar;%PRE_CLASSPATH%;%WEBLOGIC_CLASSPATH%;%POST_CLASSPATH%;%WLP_POST_CLASSPATH%


          將js.jar 文件復制到 server/lib目錄中。在類路徑中設置優先載入。

          pdf電子書下載   soa.hntky.com

          posted @ 2008-05-29 16:56 風中的舞者 閱讀(2539) | 評論 (3)編輯 收藏
          向大家推薦一下java pdf下載的網站(全英文章)
          http://soa.hntky.com
          posted @ 2008-03-04 13:01 風中的舞者 閱讀(349) | 評論 (0)編輯 收藏

          soa.hntky.com
          很多的電子書,速度較快,可以搜索

          posted @ 2007-05-25 08:36 風中的舞者 閱讀(926) | 評論 (1)編輯 收藏

          ?


          int ????ret??????
          string?filename
          string?filename2
          string?resume

          filename
          = " d:\smis2\xmk.xls "
          filename2
          = " d:\smis2\2006050120xmk.xls "
          resume
          = " d:\smis2\resume.xlw "
          filedelete(resume)
          oleobject????xlapp,xlsub?????
          xlapp
          = create?oleobject
          ret
          = xlapp.connecttonewobject( " excel.sheet " )???
          // ret=xlapp.connecttonewobject("excel.application")???

          if ????ret < 0 ????then??????
          ?????????????messagebox(
          " 你的電腦未安裝Excel " ,string(ret))??????
          ?????????????
          return ??????
          end????
          if ??????
          xlapp.application.workbooks.open(filename)??????
          xlsub
          = xlapp.application.activeworkbook.worksheets[ 1 ]??????

          xlsub.cells[
          4 , 2 ].value = " 我是吳吳 "

          xlapp.saveas(filename2,
          true )
          messagebox(
          " aa " , " aa " )
          xlapp.application.save(
          ' ? ' )
          // xlapp.application.close()
          xlapp.application.quit()
          xlsub.disconnectobject()
          xlapp.disconnectobject()
          destroy?xlsub
          destroy?xlapp

          posted @ 2006-10-20 10:09 風中的舞者 閱讀(748) | 評論 (0)編輯 收藏
               摘要: 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 ...  閱讀全文
          posted @ 2006-10-20 09:01 風中的舞者 閱讀(328) | 評論 (0)編輯 收藏

          Javamail操作指南(二)

          作者:Bromon 來源:http://blog.itpub.net (2005-06-28 13:30:54)


          ?

          怎樣才算比較完整的Javamail操作指南?我想應該包括絕大多數基本的email操作,能夠應付一般的應用。在本指南中打算囊括以下內容:

          ?●?發送email:包括文本郵件、HTML郵件、帶附件的郵件、SMTP驗證
          ?●?接收email:pop3遠程連接、收取不同MIME的郵件、處理附件

          ?我想有了上述功能的介紹,應該可以應付很多email的相關應用了。所以請允許我給本文擬了一個比較狂妄的名字,這樣才能保證收視率,。還是那句話,寫這個post的原因就是沒有在網上看到更全面的,你看過的話記得要告訴我。

          ? 下面的所有例子都經過實際測試,你可以說它寫得不夠OO,不夠plugable,但是它的確是可以參考的。自從有了javamail,發垃圾郵件就方便多了。本文代碼多說明少,這倒不是我偷懶,而是很多東西都涉及pop3等協議的規范,如果不了解這些規范的話,由的東西我實在不知道怎么跟你解釋;如果了解的話,那我基本上就不用再解釋。所以本著實用的原則就省略了,由興趣的話自己去翻翻協議規范。

          ?廢話少說,首先需要配置環境。需要的包是mail.jar和activation.jar。高版本的J2SDK?EE自帶。地址嘛,再java.sun.com上搜索一下,很容易找到。放到classpath中就KO。

          ?一、?郵件的發送

          ?下面了弄個發郵件的Hello?World,熱熱身:

          ?/*************
          ?Name:TextMailSender.java
          ?Author:Bromon
          ?Version:1.0
          ?Date:2004-4-26
          ?Note:發送email到bromon@163.com,需要安裝SMTP服務器
          ?*************/
          ?package?org.bromon.mail;
          ?import?javax.mail.*;
          ?import?javax.mail.internet.*;
          ?import?java.util.*;
          ?public?class?TextMailSender
          ?{
          ?public?static?void?main(String?args[])
          ?{
          ??try
          ??{
          ???Properties?prop=new?Properties();
          ???//指定要使用的SMTP服務器為bromon2k
          ???prop.put("mail.smtp.host","bromon2k");
          ???Session?mailSession=Session.getDefaultInstance(prop);

          ???//發件人地址
          ???InternetAddress?from=new?InternetAddress("bromon@bromon2k");
          ???//收件人地址
          ???InternetAddress?to=new?InternetAddress("bromon@163.com");
          ???
          ???MimeMessage?msg=new?MimeMessage(mailSession);
          ???msg.setFrom(from);
          ???msg.addRecipient(javax.mail.Message.RecipientType.TO,to);
          ???//發信日期
          ???msg.setSentDate(new?java.util.Date());
          ???//title
          ???msg.setSubject("你好");
          ???//郵件正文
          ???msg.setText("hello,bromon");
          ???Transport.send(msg);
          ??}catch(Exception?e)
          ??{
          ???System.out.println(e);
          ??}
          ?}
          ?}?


          ? 程序很簡單,但是它是不能運行的(倒)。除非你的機器上安裝了一個SMTP服務器,而且你的機器還叫做bromon2k。寫這么一段不能執行的程序不是為了找打,而是讓各位對javamail有個基本印象,我就懶得改了。下面演示的是如何通過163、sohu等email服務商提供的免費郵箱來發郵件,基本操作和上面的一樣,只是多一個SMTP驗證而已:

          ?/*
          ?*?Created?on?2004-4-26
          ?*/
          ?package?org.bromon.mail;
          ?import?javax.mail.*;
          ?import?java.util.*;
          ?import?javax.mail.internet.*;

          ?/**
          ?*?@author?Bromon
          ?*/
          ?public?class?SenderWithSMTPVer
          ?{
          ?String?host="";
          ?String?user="";
          ?String?password="";

          ?public?void?setHost(String?host)
          ?{
          ??this.host=host;
          ?}

          ?public?void?setAccount(String?user,String?password)
          ?{
          ??this.user=user;
          ??this.password=password;
          ?}

          ?public?void?send(String?from,String?to,String?subject,String?content)
          ?{
          ??Properties?props?=?new?Properties();
          ??props.put("mail.smtp.host",?host);//指定SMTP服務器
          ??props.put("mail.smtp.auth",?"true");//指定是否需要SMTP驗證
          ??try
          ??{
          ???Session?mailSession?=?Session.getDefaultInstance(props);
          ???
          ???mailSession.setDebug(true);//是否在控制臺顯示debug信息
          ???
          ???Message?message=new?MimeMessage(mailSession);
          ???message.setFrom(new?InternetAddress(from));//發件人
          ???message.addRecipient(Message.RecipientType.TO,new?InternetAddress(to));//收件人
          ???
          ???message.setSubject(subject);//郵件主題
          ???message.setText(content);//郵件內容
          ???message.saveChanges();
          ???
          ???Transport?transport?=?mailSession.getTransport("smtp");
          ???transport.connect(host,?user,?password);
          ???transport.sendMessage(message,?message.getAllRecipients());
          ???transport.close();
          ??}catch(Exception?e)
          ??{
          ???System.out.println(e);
          ??}
          ??
          ?}

          ?public?static?void?main(String?args[])
          ?{
          ??SenderWithSMTPVer?sm=new?SenderWithSMTPVer();

          ??sm.setHost("smtp.163.com");//指定要使用的郵件服務器
          ??sm.setAccount("abc","123");//指定帳號和密碼

          ??/*
          ?*?@param?String?發件人的地址
          ???*?@param?String?收件人地址
          ???*?@param?String?郵件標題
          ???*?@param?String?郵件正文
          ??*/
          ??sm.send("abc@163.com","bromon@163.com","標題","內容");
          ?}

          ?}?


          ?這段程序好像也不需要解釋了吧,把SMTP地址、帳號、密碼等配置信息寫到Properties里面,Java里面很多API都需要這么干,比如再程序中加入對代理服務器的支持等。

          ?上面的程序修改一下服務器地址、帳號、密碼就可以使用,非常簡單。

          ?如何發送一個HTML格式的Email呢?也很簡單,再郵件正文中寫入HTML代碼,然后指定郵件的ContentType就OK,下面只給出關鍵代碼:

          ?………..
          ?MimeMessage?msg=new?MimeMessage(mailSession);
          ?msg.setContent(content,"text/html");
          ?msg.setText(“<html><body><h1>下面的,你們好嗎?</body></html>”);
          ?………..

          ?下面是發送帶有附件的email,稍微復雜一點,而且和前面的程序有一些不同,請仔細一點,同時需要一點IO的知識。相同的代碼就不在列出,只寫關鍵部分,誰都想偷懶不是?

          ?import?javax.mail.*;
          ?import?javax.mail.internet.*;
          ?import?javax.activation.*;
          ?import?java.util.*;
          ?……….
          ?MimeMessage?msg=new?MimeMessage(mailSession);
          ?msg.setSentDate(new?Date());
          ?msg.setSubject("hello");

          ?MimeBodyPart?textBodyPart=new?MimeBodyPart();
          ?textBodyPart.setText(“郵件正文”);

          ?MimeBodyPart?fileBodyPart=new?MimeBodyPart();
          ?FileDataSource?fds=new?FileDataSource("GIS.rar");//要發送的附件
          ?fileBodyPart.setDataHandler(new?DataHandler(fds));
          ?fileBodyPart.setFileName(fds.getName());
          ?Multipart?container=new?MimeMultipart();
          ?container.addBodyPart(textBodyPart);
          ?container.addBodyPart(fileBodyPart);
          ?msg.setContent(container);
          ?Transport.send(msg);
          ?…………?


          ?這里的msg由兩個MimeBodyPart構成,這個東西解釋起來基本上比較難,如果不了解相關的規范就不太好解釋,如果了解的話,我就不用解釋了,這個這個………唉。

          二、?郵件的收取

          ?通常情況下我們都使用pop3協議來收郵件,IMAP嘛現在就不涉及了。收郵件的功能雖然我用了很多時間才基本搞清楚,不過講起來就so?easy了,一個程序就可以基本包括。

          ?郵件大致可以分三種:純文本郵件、含有其他數據的文本郵件、含有附件的郵件。


          ?CODE??
          ?/*
          ?*?Created?on?2004-4-26
          ?*/
          ?package?org.bromon.mail;
          ?import?javax.mail.*;
          ?import?java.util.*;
          ?import?java.io.*;

          ?/**
          ?*?@author?Bromon
          ?*/
          ?public?class?Receiver
          ?{
          ?Folder?inbox;
          ?Store?store;

          ?//連接郵件服務器,獲得所有郵件的列表
          ?public?Message[]?getMail(String?host,String?name,String?password)?throws?Exception
          ?{
          ??Properties?prop=new?Properties();
          ??prop.put("mail.pop3.host",host);
          ??Session?session=Session.getDefaultInstance(prop);
          ??store=session.getStore("pop3");
          ??store.connect(host,name,password);
          ??
          ??inbox=store.getDefaultFolder().getFolder("INBOX");
          ??inbox.open(Folder.READ_ONLY);
          ??
          ??Message[]?msg=inbox.getMessages();
          ??
          ??FetchProfile?profile=new?FetchProfile();
          ??profile.add(FetchProfile.Item.ENVELOPE);
          ??inbox.fetch(msg,profile);
          ??
          ??return(msg);
          ?}

          ?//處理任何一種郵件都需要的方法
          ?private?void?handle(Message?msg)?throws?Exception
          ?{
          ??System.out.println("郵件主題:"+msg.getSubject());
          ??System.out.println("郵件作者:"+msg.getFrom()[0].toString());
          ??System.out.println("發送日期:"+msg.getSentDate());
          ?}

          ?//處理文本郵件
          ?public?void?handleText(Message?msg)?throws?Exception
          ?{
          ??this.handle(msg);
          ??System.out.println("郵件內容:"+msg.getContent());
          ?}

          ?//處理Multipart郵件,包括了保存附件的功能
          ?public?void?handleMultipart(Message?msg)?throws?Exception
          ?{
          ??String?disposition;
          ??BodyPart?part;
          ??
          ??Multipart?mp=(Multipart)msg.getContent();
          ??int?mpCount=mp.getCount();//Miltipart的數量,用于除了多個part,比如多個附件
          ??for(int?m=0;m<mpCount;m++)
          ??{
          ???this.handle(msg);
          ???
          ???part=mp.getBodyPart(m);
          ???disposition=part.getDisposition();
          ???if(disposition!=null?&&?disposition.equals(Part.ATTACHMENT))//判斷是否有附件
          ???{
          ????//this.saveAttach(part);//這個方法負責保存附件,注釋掉是因為附件可能有病毒,請清理信箱之后再取掉注釋
          ???}else{
          ????System.out.println(part.getContent());
          ???}
          ??}
          ?}

          ?private?void?saveAttach(BodyPart?part)?throws?Exception
          ?{
          ??String?temp=part.getFileName();//得到未經處理的附件名字
          ??String?s=temp.substring(11,temp.indexOf("?=")-1);//去到header和footer
          ??
          ??//文件名一般都經過了base64編碼,下面是解碼
          ??String?fileName=this.base64Decoder(s);
          ??System.out.println("有附件:"+fileName);
          ??
          ??InputStream?in=part.getInputStream();
          ??FileOutputStream?writer=new?FileOutputStream(new?File(fileName));
          ??byte[]?content=new?byte[255];
          ??int?read=0;
          ??while((read=in.read(content))!=-1)
          ??{
          ???writer.write(content);
          ??}
          ??writer.close();
          ??in.close();
          ?}

          ?//base64解碼
          ?private?String?base64Decoder(String?s)?throws?Exception
          ?{
          ??sun.misc.BASE64Decoder?decoder?=?new?sun.misc.BASE64Decoder();
          ??byte[]?b=decoder.decodeBuffer(s);
          ??
          ??return(new?String(b));
          ?}

          ?//關閉連接
          ?public?void?close()?throws?Exception
          ?{
          ??if(inbox!=null)
          ??{
          ???inbox.close(false);
          ??}
          ??
          ??if(store!=null)
          ??{
          ???store.close();
          ??}
          ?}

          ?public?static?void?main(String?args[])
          ?{
          ??String?host="pop.163.com";
          ??String?name="bromon";
          ??String?password="My?password";
          ??
          ??Receiver?receiver=new?Receiver();
          ??
          ??try
          ??{???
          ???Message[]?msg=receiver.getMail(host,name,password);
          ???
          ???for(int?i=0;i<msg.length;i++)
          ???{
          ????if(msg[i].isMimeType("text/*"))//判斷郵件類型
          ????{
          ?????receiver.handleText(msg[i]);
          ????}else{
          ?????receiver.handleMultipart(msg[i]);
          ????}
          ????System.out.println("****************************");
          ???}
          ???receiver.close();
          ??}catch(Exception?e)
          ??{
          ???System.out.println(e);
          ??}
          ?}
          ?}?


          ? 沒有習慣讀java代碼的兄弟可能會覺得麻煩了一點,其中有個小問題,下載的附件會再文件名后面加上一個”#”符號,不知道這是javamail的特別處理還是pop3的規范。通過程序更改文件名很簡單,就不說了。對于email還有很多其他的操作,可以自己取查看一下javadoc,我就不影響大家探索的樂趣了。在Properties里配置代理服務器,可以讓程序通過代理收發郵件,一般的HTTP、socks?4、socks?5都支持。

          posted @ 2006-10-19 16:10 風中的舞者 閱讀(386) | 評論 (0)編輯 收藏
          http://www.dokeos.com/howto.php
          posted @ 2006-09-19 20:51 風中的舞者 閱讀(373) | 評論 (0)編輯 收藏
          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章檔案

          java技術

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 鲁甸县| 厦门市| 浠水县| 霍邱县| 和龙市| 仁化县| 博客| 库尔勒市| 林甸县| 齐河县| 集安市| 辛集市| 灵武市| 金堂县| 阳西县| 白城市| 荃湾区| 河池市| 沁源县| 定日县| 嵊泗县| 安顺市| 珲春市| 谷城县| 沁源县| 大连市| 华容县| 高雄县| 通州市| 云阳县| 乌鲁木齐县| 常宁市| 彰化县| 克东县| 沂源县| 分宜县| 莒南县| 绥滨县| 顺义区| 旅游| 富蕴县|