ï»??xml version="1.0" encoding="utf-8" standalone="yes"?> @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%
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å?å‘现两个解决æ–ÒŽ(gu¨©)¡ˆ,
ä¸€ã€æ›¿æ¢weblogic.jarä¸çš„js.jaræ–‡äšgåQ?br />
éºÈƒ¦(ch¨³)åQŒæœ‰éšä¸²
二ã€åœ¨ web应用ä¸åŠ å…?br />
<prefer-web-inf-classes>true</prefer-web-inf-classes>
坯D‡´åº”ç”¨æ— æ³•å‘布æˆåŠŸã€?br />
最åŽè‡ªå·±æƒ³å‡ÞZ¸€¿Uæ–¹æ¡?
在weblogic的应动域目录ä¸ï¼ŒsetDomainEnv.cmdæ–‡äšgä¸ï¼Œ 更改如下åQ?br />
ž®†js.jar æ–‡äšgå¤åˆ¶åˆ?server/lib目录ä¸ã€‚在¾c»èµ\径ä¸è®„¡½®ä¼˜å…ˆè½½å…¥ã€?br />
pdfç”?sh¨´)å书下è?nbsp; soa.hntky.com
]]>
]]>
很多的电(sh¨´)å书åQŒé€Ÿåº¦è¾ƒå¿«åQŒå¯ä»¥æœç´?/p>
]]>
Javamailæ“作指å—(äº?
作者:(x¨¬)Bromon æ¥æº:http://blog.itpub.net (2005-06-28 13:30:54)
Â
æ€Žæ ·æ‰ç®—比较完整的Javamailæ“作指å—åQŸæˆ‘惛_º”该包括ç»å¤§å¤šæ•°åŸºæœ¬çš„emailæ“作åQŒèƒ½å¤Ÿåº”付一般的应用。在本指å—䏿‰“算囊括以下内容åQ?/font>
 â— å‘é€emailåQšåŒ…括文本邮件ã€HTMLé‚®äšgã€å¸¦é™„äšg的邮件ã€SMTP验è¯
 â— 接收emailåQšpop3˜qœç¨‹˜qžæŽ¥ã€æ”¶å–ä¸åŒMIME的邮件ã€å¤„ç†é™„ä»?/font>
 我想有了(ji¨£n)上述功能的介¾l,应该å¯ä»¥åº”付很多email的相兛_º”用了(ji¨£n)。所以请å…许我给本文拟了(ji¨£n)一个比较狂妄的åå—åQŒè¿™æ äh‰èƒ½ä¿è¯æ”¶è§†çއåQŒã€‚还是那å¥è¯åQŒå†™˜q™ä¸ªpostçš„åŽŸå› å°±æ˜¯æ²¡æœ‰åœ¨¾|‘上看到更全é¢çš„åQŒä½ 看过的è¯è®°å¾—è¦å‘Šè¯‰æˆ‘ã€?/font>
 下é¢çš„æ‰€æœ‰ä¾‹å都¾l过实际‹¹‹è¯•åQŒä½ å¯ä»¥è¯´å®ƒå†™å¾—ä¸å¤ŸOOåQŒä¸å¤ŸplugableåQŒä½†æ˜¯å®ƒçš„确是å¯ä»¥å‚考的。自从有äº?ji¨£n)javamailåQŒå‘垃圾邮äšgž®±æ–¹ä¾¿å¤šäº?ji¨£n)。本文代ç 多说明ž®‘,˜q™å€’䏿˜¯æˆ‘åäh‡’åQŒè€Œæ˜¯å¾ˆå¤šä¸œè¥¿éƒ½æ¶‰å?qi¨¢ng)pop3½{‰å议的规范åQŒå¦‚æžœä¸äº?ji¨£n)è§£˜q™äº›è§„范的è¯åQŒç”±çš„东西我实在ä¸çŸ¥é“æ€Žä¹ˆè·Ÿä½ è§£é‡ŠåQ›å¦‚果了(ji¨£n)解的è¯ï¼Œé‚£æˆ‘基本上就ä¸ç”¨å†è§£é‡Šã€‚所以本ç€å®žç”¨çš„原则就çœç•¥äº?ji¨£n),由兴‘£çš„è¯è‡ªå·±åŽ»¾˜È¿»å议规范ã€?/font>
 废诞®‘说åQŒé¦–先需è¦é…¾|®çŽ¯å¢ƒã€‚éœ€è¦çš„包是mail.jarå’Œactivation.jar。高版本的J2SDK EE自带。地å€å˜›ï¼Œå†java.sun.com上æœç´¢ä¸€ä¸‹ï¼Œå¾ˆå®¹æ˜“找到。放到classpathä¸å°±KOã€?/font>
 一ã€Â 邮件的å‘é€?/font>
 下é¢äº?ji¨£n)弄个å‘é‚®äšgçš„Hello WorldåQŒçƒçƒèínåQ?/font>
 /*************
 Name:TextMailSender.java
 Author:Bromon
 Version:1.0
 Date:2004-4-26
 Note:å‘é€email到bromon@163.com,需è¦å®‰è£…SMTPæœåŠ¡å™?br /> *************/
 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æœåС噍䨓(f¨´)bromon2k
   prop.put("mail.smtp.host","bromon2k");
   Session mailSession=Session.getDefaultInstance(prop);
   //å‘äšg人地å€
   I(y¨ªng)nternetAddress from=new I(y¨ªng)nternetAddress("bromon@bromon2k");
   //æ”¶äšg人地å€
   I(y¨ªng)nternetAddress to=new I(y¨ªng)nternetAddress("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("ä½ å¥½");
   //é‚®äšgæ£æ–‡
   msg.setText("hello,bromon");
   Transport.send(msg);
  }catch(Exception e)
  {
   System.out.println(e);
  }
 }
 }Â
 ½E‹åºå¾ˆç®€å•,但是它是ä¸èƒ½˜q行的(倒)(j¨ª)。除éžä½ 的机器上安装äº?ji¨£n)一个SMTPæœåŠ¡å™¨ï¼Œè€Œä¸”ä½ çš„æœºå™¨˜q˜å«åšbromon2k。写˜q™ä¹ˆä¸€ŒDµä¸èƒ½æ‰§è¡Œçš„½E‹åºä¸æ˜¯ä¸ÞZº†(ji¨£n)找打åQŒè€Œæ˜¯è®©å„ä½å¯¹javamail有个基本å°è±¡åQŒæˆ‘ž®±æ‡’得改äº?ji¨£n)ã€‚ä¸‹é¢æ¼”½Cºçš„æ˜¯å¦‚何通过163ã€sohu½{‰emailæœåС商æä¾›çš„å…费邮箱æ¥å‘é‚®äšgåQŒåŸºæœ¬æ“作和上é¢çš„ä¸€æ øP¼Œåªæ˜¯å¤šä¸€ä¸ªSMTP验è¯è€Œå·²åQ?/font>
 /*
 * 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æœåŠ¡å™?br />  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 I(y¨ªng)nternetAddress(from));//å‘äšgäº?br />   message.addRecipient(Message.RecipientType.TO,new I(y¨ªng)nternetAddress(to));//æ”¶äšgäº?br />  Â
   message.setSubject(subject);//é‚®äšg主题
   message.setText(content);//é‚®äšg内容
   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");//指定è¦ä‹É用的邮äšgæœåŠ¡å™?br />  sm.setAccount("abc","123");//指定å¸å·å’Œå¯†ç ?/font>
  /*
 * @param String å‘äšg人的地å€
   * @param String 收äšg人地å€
   * @param String 邮äšgæ ‡é¢˜
   * @param String 邮äšgæ£æ–‡
  */
  sm.send("abc@163.com","bromon@163.com","æ ‡é¢˜","内容");
 }
 }Â
 ˜q™æ®µ½E‹åºå¥½åƒä¹Ÿä¸éœ€è¦è§£é‡Šäº†(ji¨£n)å§ï¼ŒæŠŠSMTP地å€ã€å¸å—÷€å¯†ç ç‰é…置信æ¯å†™åˆ°Properties里é¢åQŒJava里é¢å¾ˆå¤šAPI都需è¦è¿™ä¹ˆå¹²åQŒæ¯”如冽E‹åºä¸åŠ å…¥å¯¹ä»£ç†æœåŠ¡å™¨çš„æ”¯æŒ½{‰ã€?/font>
 上é¢çš„程åºä¿®æ”¹ä¸€ä¸‹æœåŠ¡å™¨åœ°å€ã€å¸å—÷€å¯†ç å°±å¯ä»¥ä½¿ç”¨åQŒéžå¸¸ç®€å•ã€?/font>
 如何å‘é€ä¸€ä¸ªHTMLæ ¼å¼çš„Email呢?也很½Ž€å•,å†é‚®ä»¶æ£æ–‡ä¸å†™å…¥HTML代ç åQŒç„¶åŽæŒ‡å®šé‚®ä»¶çš„ContentTypež®±O(ji¨¡n)KåQŒä¸‹é¢åª¾l™å‡ºå…³é”®ä»£ç åQ?/font>
 ……�.
 MimeMessage msg=new MimeMessage(mailSession);
 msg.setContent(content,"text/html");
 msg.setText(â€?lt;html><body><h1>下é¢çš„ï¼Œä½ ä»¬å¥½å—?</body></html>â€?;
 ……�.
Â ä¸‹é¢æ˜¯å‘é€å¸¦æœ‰é™„ä»¶çš„emailåQŒç¨å¾®å¤æ‚一点,而且和å‰é¢çš„½E‹åºæœ‰ä¸€äº›ä¸åŒï¼Œè¯·ä»”¾l†ä¸€ç‚¹ï¼ŒåŒæ—¶éœ€è¦ä¸€ç‚¹IO的知识。相åŒçš„ä»£ç ž®×ƒ¸åœ¨åˆ—出,åªå†™å…³é”®éƒ¨åˆ†åQŒè°éƒ½æƒ³åäh‡’䏿˜¯åQ?/font>
 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");//è¦å‘é€çš„附äšg
 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);
 …………�/font>
 ˜q™é‡Œçš„msgç”׃¸¤ä¸ªMimeBodyPartæž„æˆåQŒè¿™ä¸ªä¸œè¥¿è§£é‡Šè“væ¥åŸºæœ¬ä¸Šæ¯”较难,如果ä¸äº†(ji¨£n)解相关的规范?y¨u)®×ƒ¸å¤ªå¥½è§£é‡ŠåQŒå¦‚果了(ji¨£n)解的è¯ï¼Œæˆ‘å°±ä¸ç”¨è§£é‡Šäº?ji¨£n),˜q™ä¸ª˜q™ä¸ªâ€¦â€¦â€¦å”‰ã€?/font>
二ã€Â 邮件的收å–
 通常情况下我们都使用pop3åè®®æ¥æ”¶é‚®äšgåQŒIMAPå˜›çŽ°åœ¨å°±ä¸æ¶‰å?qi¨¢ng)äº?ji¨£n)。收邮äšg的功能虽然我用了(ji¨£n)很多旉™—´æ‰åŸºæœ¬æžæ¸…楚åQŒä¸˜q‡è®²èµäh¥ž®±so easyäº?ji¨£n),一个程åºå°±å¯ä»¥åŸºæœ¬åŒ…括ã€?/font>
 邮äšg大致å¯ä»¥åˆ†ä¸‰¿U:(x¨¬)¾U¯æ–‡æœ¬é‚®ä»¶ã€å«æœ‰å…¶ä»–æ•°æ®çš„æ–‡æœ¬é‚®äšgã€å«æœ‰é™„件的邮äšgã€?/font>
 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;
 //˜qžæŽ¥é‚®äšgæœåŠ¡å™¨ï¼ŒèŽ·å¾—æ‰€æœ‰é‚®ä»¶çš„åˆ—è¡¨
 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);
 }
 //处ç†ä»ÖM½•一¿U邮仉™ƒ½éœ€è¦çš„æ–ÒŽ(gu¨©)³•
 private void handle(Message msg) throws Exception
 {
  System.out.println("é‚®äšg主题:"+msg.getSubject());
  System.out.println("é‚®äšg作è€?"+msg.getFrom()[0].toString());
  System.out.println("å‘逿—¥æœ?"+msg.getSentDate());
 }
 //å¤„ç†æ–‡æœ¬é‚®äšg
 public void handleText(Message msg) throws Exception
 {
  this.handle(msg);
  System.out.println("é‚®äšg内容:"+msg.getContent());
 }
 //处ç†Multiparté‚®äšgåQŒåŒ…括了(ji¨£n)ä¿å˜é™„äšg的功èƒ?br /> public void handleMultipart(Message msg) throws Exception
 {
  String disposition;
  BodyPart part;
 Â
  Multipart mp=(Multipart)msg.getContent();
  int mpCount=mp.getCount();//Miltipart的数é‡?用于除了(ji¨£n)多个part,比如多个附äšg
  for(int m=0;m<mpCount;m++)
  {
   this.handle(msg);
  Â
   part=mp.getBodyPart(m);
   disposition=part.getDisposition();
   if(disposition!=null && disposition.equals(Part.ATTACHMENT))//åˆ¤æ–æ˜¯å¦æœ‰é™„ä»?br />   {
    //this.saveAttach(part);//˜q™ä¸ªæ–ÒŽ(gu¨©)³•è´Ÿè´£ä¿å˜é™„äšgåQŒæ³¨é‡ŠæŽ‰æ˜¯å› 为附件å¯èƒ½æœ‰ç—…毒åQŒè¯·æ¸…ç†ä¿¡ç®±ä¹‹åŽå†å–掉注é‡?br />   }else{
    System.out.println(part.getContent());
   }
  }
 }
 private void saveAttach(BodyPart part) throws Exception
 {
  String temp=part.getFileName();//得到未ç»å¤„ç†çš„附件åå?br />  String s=temp.substring(11,temp.indexOf("?=")-1);//åŽÕdˆ°headerå’Œfooter
 Â
  //æ–‡äšgå一般都¾l过äº?ji¨£n)base64¾~–ç ,䏋颿˜¯è§£ç ?br />  String fileName=this.base64Decoder(s);
  System.out.println("有附�"+fileName);
 Â
  I(y¨ªng)nputStream 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));
 }
 //关闘qžæŽ¥
 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/*"))//判æ–é‚®äšg¾cÕdž‹
    {
     receiver.handleText(msg[i]);
    }else{
     receiver.handleMultipart(msg[i]);
    }
    System.out.println("****************************");
   }
   receiver.close();
  }catch(Exception e)
  {
   System.out.println(e);
  }
 }
 }Â
 没有ä¹?f¨¤n)惯读java代ç 的兄弟å¯èƒ½ä¼š(x¨¬)觉得éºÈƒ¦(ch¨³)äº?ji¨£n)ä¸€ç‚¹ï¼Œå…¶ä¸æœ‰ä¸ªž®é—®é¢˜ï¼Œä¸‹è²çš„附件会(x¨¬)冿–‡ä»¶ååŽé¢åŠ ä¸Šä¸€ä¸ªâ€?â€ç¬¦åøP¼Œä¸çŸ¥é“这是javamail的特别处ç†è¿˜æ˜¯pop3的规范。通过½E‹åºæ›´æ”¹æ–‡äšgå很½Ž€å•,ž®×ƒ¸è¯´äº†(ji¨£n)。对于email˜q˜æœ‰å¾ˆå¤šå…¶ä»–çš„æ“作,å¯ä»¥è‡ªå·±å–查看一下javadocåQŒæˆ‘ž®×ƒ¸å½±å“大家探烦(ch¨³)的乑£äº†(ji¨£n)。在Properties里酾|®ä»£ç†æœåС噍åQŒå¯ä»¥è®©½E‹åºé€šè¿‡ä»£ç†æ”¶å‘é‚®äšgåQŒä¸€èˆ¬çš„HTTPã€socks 4ã€socks 5都支æŒã€?/font>
public abstract class EmployeePictureBean implements EntityBean
{
 ....
 public abstract byte[] getPicture();
 public abstract void setPicture(byte[] newPicture);
 public Long ejbCreate(Long empno, byte[] newPicture)
 {
  setEmpno(empno);
  setPicture(newPicture);
  return empno;
 }
 public void ejbPostCreate(Long empno, byte[] newPicture)
 {
 }
 ...
}
<entity-deployment name="EmployeePicture" data-source="jdbc/OracleDS" table="EMPPIC">
 <primkey-mapping>
  <cmp-field-mapping name="empno" persistence-name="EMPNO" persistence-type="NUMBER(8)"/>
 </primkey-mapping>
 <cmp-field-mapping name="empno" persistence-name="EMPNO" persistence-type="NUMBER(8)"/>
 <cmp-field-mapping name="picture" persistence-name="PICTURE" persistence-type="BLOB"/>
</entity-deployment>
// Locate and open the file
  File imgFile = new File(fileName);
  long imgFileSize= imgFile.length();
  // initialize the byte array
  byte byteValue[] = new byte[(int)imgFileSize];
  // Read the file into the byte array
  InputStream is = new BufferedInputStream(new FileInputStream(imgFile));
  int len = is.read(byteValue);
  //Add the byte to the entity bean field
  if(len!=imgFileSize)
  {
      System.out.println("Read bytes did not equal file size on directory");
  }
  else
  {
   EmployeePictureLocal employeePicture = empHome.create(empNo , byteValue);