锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
import java.io.*;
import java.util.List;
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
/**
聽* 榪欎釜綾繪彁渚涗竴浜?JDom 瀵硅薄甯哥敤鐨勬柟娉曘?br />聽*
聽*/
public class JDomUtil {
聽/**
聽 * 鏍規嵁鎸囧畾璺緞鐨刋ML鏂囦歡寤虹珛JDom瀵硅薄
聽 *
聽 * @param filePath
聽 *聽聽聽聽聽聽聽聽聽聽聽 XML鏂囦歡鐨勮礬寰?br />聽 * @return 榪斿洖寤虹珛鐨凧Dom瀵硅薄錛屽緩绔嬩笉鎴愬姛榪斿洖null 銆?br />聽 */
聽public static Document buildFromFile(String filePath) {
聽聽try {
聽聽聽SAXBuilder builder = new SAXBuilder();
聽聽聽Document anotherDocument = builder.build(new File(filePath));
聽聽聽return anotherDocument;
聽聽} catch (JDOMException e) {
聽聽聽e.printStackTrace();
聽聽} catch (NullPointerException e) {
聽聽聽e.printStackTrace();
聽聽} catch (IOException e) {
聽聽聽// TODO 鑷姩鐢熸垚 catch 鍧?br />聽聽聽e.printStackTrace();
聽聽}
聽聽return null;
聽}
聽/**
聽 * 鏍規嵁XML 瀛楃涓?寤虹珛JDom瀵硅薄
聽 *
聽 * @param xmlString
聽 *聽聽聽聽聽聽聽聽聽聽聽 XML鏍煎紡鐨勫瓧絎︿覆
聽 * @return 榪斿洖寤虹珛鐨凧Dom瀵硅薄錛屽緩绔嬩笉鎴愬姛榪斿洖null 銆?br />聽 */
聽public static Document buildFromXMLString(String xmlString) {
聽聽try {
聽聽聽SAXBuilder builder = new SAXBuilder();
聽聽聽Document anotherDocument = builder
聽聽聽聽聽.build(new StringReader(xmlString));
聽聽聽return anotherDocument;
聽聽} catch (JDOMException e) {
聽聽聽e.printStackTrace();
聽聽} catch (NullPointerException e) {
聽聽聽e.printStackTrace();
聽聽} catch (IOException e) {
聽聽聽// TODO 鑷姩鐢熸垚 catch 鍧?br />聽聽聽e.printStackTrace();
聽聽}
聽聽return null;
聽}
聽/**
聽 * 鏍規嵁Dom瀵硅薄寤虹珛JDom瀵硅薄
聽 *
聽 * @param Dom
聽 *聽聽聽聽聽聽聽聽聽聽聽 org.w3c.dom.Document瀵硅薄
聽 * @return 榪斿洖寤虹珛鐨凧Dom瀵硅薄錛屽緩绔嬩笉鎴愬姛榪斿洖null 銆?br />聽 */
聽public static Document buildFromDom(org.w3c.dom.Document Dom)
聽聽聽throws JDOMException, IOException {
聽聽org.jdom.input.DOMBuilder builder = new org.jdom.input.DOMBuilder();
聽聽Document jdomDoc = builder.build(Dom);
聽聽return jdomDoc;
聽}
聽/**
聽 * 榪欎釜鏂規硶浣跨敤XMLOutputer灝嗕竴涓狫Dom瀵硅薄杈撳嚭鍒版爣鍑嗚緭鍑鴻澶囷紝浣跨敤 GBK 緙栫爜
聽 *
聽 * @param myDocument
聽 *聽聽聽聽聽聽聽聽聽聽聽 灝嗚琚緭鍑虹殑JDom瀵硅薄
聽 */
聽public static void outputToStdout(Document myDocument) {
聽聽outputToStdout(myDocument, "GBK");
聽}
聽/**
聽 * 榪欎釜鏂規硶浣跨敤XMLOutputer灝嗕竴涓狫Dom瀵硅薄杈撳嚭鍒版爣鍑嗚緭鍑鴻澶?br />聽 *
聽 * @param myDocument
聽 *聽聽聽聽聽聽聽聽聽聽聽 灝嗚琚緭鍑虹殑JDom瀵硅薄
聽 * @param encoding
聽 *聽聽聽聽聽聽聽聽聽聽聽 杈撳嚭浣跨敤鐨勭紪鐮?br />聽 */
聽public static void outputToStdout(Document myDocument, String encoding) {
聽聽try {
/*聽聽聽XMLOutputter outputter = new XMLOutputter();
聽聽聽Format fm = Format.getRawFormat();
聽聽聽fm.setEncoding(encoding);
聽聽聽outputter.setFormat(fm);*/
聽聽聽XMLOutputter outputter = new XMLOutputter("",true,encoding);
聽聽聽outputter.output(myDocument, System.out);
聽聽} catch (java.io.IOException e) {
聽聽聽e.printStackTrace();
聽聽}
聽}
聽/**
聽 * 榪欎釜鏂規硶灝咼Dom瀵硅薄杞崲瀛楃涓?
聽 *
聽 * @param document
聽 *聽聽聽聽聽聽聽聽聽聽聽 灝嗚琚漿鎹㈢殑JDom瀵硅薄
聽 */
聽public static String outputToString(Document document) {
聽聽return outputToString(document, "GBK");
聽}
聽/**
聽 * 榪欎釜鏂規硶灝咼Dom瀵硅薄杞崲瀛楃涓?
聽 *
聽 * @param document
聽 *聽聽聽聽聽聽聽聽聽聽聽 灝嗚琚漿鎹㈢殑JDom瀵硅薄
聽 * @param encoding
聽 *聽聽聽聽聽聽聽聽聽聽聽 杈撳嚭瀛楃涓蹭嬌鐢ㄧ殑緙栫爜
聽 */
聽public static String outputToString(Document document, String encoding) {
聽聽ByteArrayOutputStream byteRep = new ByteArrayOutputStream();
聽聽/*聽聽聽XMLOutputter outputter = new XMLOutputter();
聽聽Format fm = Format.getRawFormat();
聽聽fm.setEncoding(encoding);
聽聽outputter.setFormat(fm);*/
聽聽XMLOutputter outputter = new XMLOutputter("",true,encoding);
聽聽try {
聽聽聽outputter.output(document, byteRep);
聽聽} catch (Exception e) {
聽聽}
聽聽return byteRep.toString();
聽}
聽/**
聽 * 榪欎釜鏂規硶灝哃ist瀵硅薄杞崲瀛楃涓?
聽 *
聽 * @param document
聽 *聽聽聽聽聽聽聽聽聽聽聽 灝嗚琚漿鎹㈢殑JDom瀵硅薄
聽 */
聽public static String outputToString(List list) {
聽聽return outputToString(list, "GBK");
聽}
聽/**
聽 * 榪欎釜鏂規硶灝哃ist瀵硅薄杞崲瀛楃涓?
聽 *
聽 * @param document
聽 *聽聽聽聽聽聽聽聽聽聽聽 灝嗚琚漿鎹㈢殑JDom瀵硅薄
聽 * @param encoding
聽 *聽聽聽聽聽聽聽聽聽聽聽 杈撳嚭瀛楃涓蹭嬌鐢ㄧ殑緙栫爜
聽 */
聽public static String outputToString(List list, String encoding) {
聽聽ByteArrayOutputStream byteRep = new ByteArrayOutputStream();
聽聽/*聽聽聽XMLOutputter outputter = new XMLOutputter();
聽聽Format fm = Format.getRawFormat();
聽聽fm.setEncoding(encoding);
聽聽outputter.setFormat(fm);*/
聽聽XMLOutputter outputter = new XMLOutputter("",true,encoding);
聽聽try {
聽聽聽outputter.output(list, byteRep);
聽聽} catch (Exception e) {
聽聽}
聽聽return byteRep.toString();
聽}
聽public static org.w3c.dom.Document outputToDom(org.jdom.Document jdomDoc)
聽聽聽throws JDOMException {
聽聽org.jdom.output.DOMOutputter outputter = new org.jdom.output.DOMOutputter();
聽聽return outputter.output(jdomDoc);
聽}
聽/**
聽 * 榪欎釜鏂規硶浣跨敤XMLOutputter灝咼Dom瀵硅薄杈撳嚭鍒版枃浠?br />聽 *
聽 * @param myDocument
聽 *聽聽聽聽聽聽聽聽聽聽聽 灝嗚杈撳嚭鐨凧Dom瀵硅薄
聽 * @param filePath
聽 *聽聽聽聽聽聽聽聽聽聽聽 灝嗚杈撳嚭鍒扮殑紓佺洏璺緞
聽 */
聽public static void outputToFile(Document myDocument, String filePath) {
聽聽outputToFile(myDocument, filePath, "GBK");
聽}
聽/**
聽 * 榪欎釜鏂規硶浣跨敤XMLOutputter灝咼Dom瀵硅薄杈撳嚭鍒版枃浠?br />聽 *
聽 * @param myDocument
聽 *聽聽聽聽聽聽聽聽聽聽聽 灝嗚杈撳嚭鐨凧Dom瀵硅薄
聽 * @param filePath
聽 *聽聽聽聽聽聽聽聽聽聽聽 灝嗚杈撳嚭鍒扮殑紓佺洏璺緞
聽 * @param encoding
聽 *聽聽聽聽聽聽聽聽聽聽聽 緙栫爜鏂瑰紡
聽 */
聽public static void outputToFile(Document myDocument, String filePath,
聽聽聽String encoding) {
聽聽//setup this like outputDocument
聽聽try {
聽聽聽//XMLOutputter outputter = new XMLOutputter(" ", true,encoding);
聽聽聽/*聽聽聽XMLOutputter outputter = new XMLOutputter();
聽聽聽Format fm = Format.getRawFormat();
聽聽聽fm.setEncoding(encoding);
聽聽聽outputter.setFormat(fm);*/
聽聽聽XMLOutputter outputter = new XMLOutputter("",true,encoding);
聽聽聽//output to a file
聽聽聽FileWriter writer = new FileWriter(filePath);
聽聽聽outputter.output(myDocument, writer);
聽聽聽writer.close();
聽聽} catch (java.io.IOException e) {
聽聽聽e.printStackTrace();
聽聽}
聽}
聽/**
聽 * 榪欎釜鏂規硶灝咼Dom瀵硅薄閫氳繃鏍峰紡鍗曡漿鎹?
聽 *
聽 * @param myDocument
聽 *聽聽聽聽聽聽聽聽聽聽聽 灝嗚琚漿鎹㈢殑JDom瀵硅薄
聽 * @param xslFilePath
聽 *聽聽聽聽聽聽聽聽聽聽聽 XSL鏂囦歡鐨勭鐩樿礬寰?br />聽 */
聽public static void executeXSL(Document myDocument, String xslFilePath,
聽聽聽StreamResult xmlResult) {
聽聽try {
聽聽聽TransformerFactory tFactory = TransformerFactory.newInstance();
聽聽聽// Make the input sources for the XML and XSLT documents
聽聽聽org.jdom.output.DOMOutputter outputter = new org.jdom.output.DOMOutputter();
聽聽聽org.w3c.dom.Document domDocument = outputter.output(myDocument);
聽聽聽javax.xml.transform.Source xmlSource = new javax.xml.transform.dom.DOMSource(
聽聽聽聽聽domDocument);
聽聽聽StreamSource xsltSource = new StreamSource(new FileInputStream(
聽聽聽聽聽xslFilePath));
聽聽聽//Get a XSLT transformer
聽聽聽Transformer transformer = tFactory.newTransformer(xsltSource);
聽聽聽//do the transform
聽聽聽transformer.transform(xmlSource, xmlResult);
聽聽} catch (FileNotFoundException e) {
聽聽聽e.printStackTrace();
聽聽} catch (TransformerConfigurationException e) {
聽聽聽e.printStackTrace();
聽聽} catch (TransformerException e) {
聽聽聽e.printStackTrace();
聽聽} catch (org.jdom.JDOMException e) {
聽聽聽e.printStackTrace();
聽聽}
聽}
聽//Main 鍑芥暟錛屽眬閮ㄦ祴璇曠敤銆?br />聽public static void main(String argv[]) {
//聽聽Document dom = JDomUtil.buildFromFile("f:/web.xml");
//聽聽List list=dom.getRootElement().getChildren("servlet");
//聽聽String vs_dom = JDomUtil.outputToString(list,"gb2312");
//聽聽System.out.println(vs_dom);
聽聽String xmlString = "<record><row f1=\"111\" f2=\"111\"/><row f1=\"222\" f2=\"222\"/></record>";
聽聽Document dom = JDomUtil.buildFromXMLString(xmlString);
聽聽List list=dom.getRootElement().getChildren("row");
聽聽int num = list.size();
聽聽for(int i=0;i<num;i++){
聽聽聽Element element = (Element)list.get(i);
聽聽聽System.out.println(element.getAttributeValue("f1"));
聽聽聽System.out.println(element.getAttributeValue("f2"));
聽聽}
聽}
}
聽
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
聽* @author dengdahong214
聽*
聽* TODO 瑕佹洿鏀規鐢熸垚鐨勭被鍨嬫敞閲婄殑妯℃澘錛岃杞嚦 紿楀彛 錛?棣栭夐」 錛?Java 錛?浠g爜鏍峰紡 錛?浠g爜妯℃澘
聽*/
public class DateUtil {
聽聽聽 public static final int MILLISECONDS_PER_SECOND = 1000;
聽聽聽 public static final int MILLISECONDS_PER_DAY = 86400000;
聽聽聽 public static final int MILLISECONDS_PER_HOUR = 3600000;
聽聽聽 public static final int MILLISECONDS_PER_MINUTE = 60000;
聽聽聽 /*
聽聽聽聽 * 鏃ユ湡鎸夋寚瀹氭牸寮忚漿鍖栨垚瀛楃涓?br />聽聽聽聽 */
聽聽聽 public static String dateToStr(String aMask,Date date){
聽聽聽聽聽聽聽 SimpleDateFormat df = new SimpleDateFormat(aMask);
聽聽聽聽聽聽聽 String dateAsString = df.format(date);
聽聽聽聽聽聽聽 return dateAsString;
聽聽聽 }
聽聽聽 public static String getCurrentTime(){
聽聽聽聽聽聽聽 return getToday("HH:mm:ss");
聽聽聽 }
聽聽聽 /*
聽聽聽聽 * 鎸夋寚瀹氭牸寮忚繑鍥炲綋澶╂棩鏈熺殑瀛楃涓插艦寮?br />聽聽聽聽 */
聽聽聽 public static String getToday(String aMask){
聽聽聽聽聽聽聽 Date today = new Date();
聽聽聽聽聽聽聽 String todayAsString = dateToStr(aMask,today);
聽聽聽聽聽聽聽 return todayAsString;
聽聽聽 }
聽聽聽 /*
聽聽聽聽 * 鎸夐粯璁ゆ牸寮忚繑鍥炲綋澶╂棩鏈熺殑瀛楃涓插艦寮?br />聽聽聽聽 */
聽聽聽 public static String getToday(){
聽聽聽聽聽聽聽 return getToday("yyyy-MM-dd");
聽聽聽 }
聽聽聽 /*
聽聽聽聽 * 鎶婂瓧絎︿覆鎸夋寚瀹氭牸寮忚漿鍖栨垚Date
聽聽聽聽 */
聽聽聽 public static Date strToDate(String aMask,String strDate) {
聽聽聽聽聽聽聽 SimpleDateFormat format = new SimpleDateFormat(aMask);
聽聽聽聽聽聽聽 Date date = null;
聽聽聽聽聽聽聽 try {
聽聽聽聽聽聽聽聽聽聽聽 date = format.parse(strDate);
聽聽聽聽聽聽聽 } catch (ParseException e) {
聽聽聽聽聽聽聽聽聽聽聽 e.printStackTrace();
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 return date;
聽聽聽 }
聽聽聽 /*
聽聽聽聽 * 鎶婂瓧絎︿覆鎸夐粯璁ゆ牸寮忚漿鍖栨垚Date
聽聽聽聽 */
聽聽聽 public static Date strToDate(String strDate) {
聽聽聽聽聽聽聽 return strToDate("yyyy-MM-dd",strDate);
聽聽聽 }
聽聽聽 /*
聽聽聽聽 * 鏃ユ湡鐩稿噺寰楀埌鐨勬縐掓暟
聽聽聽聽 */
聽聽聽 public static long sub(String aMask,String strBeginDate, String strEndDate) {
聽聽聽聽聽聽聽 long dateRange=0;
聽聽聽聽聽聽聽 int num = 0;
聽聽聽聽聽聽聽 Date beginDate = strToDate(aMask,strBeginDate);
聽聽聽聽聽聽聽 Date endDate = strToDate(aMask,strEndDate);
聽聽聽聽聽聽聽 dateRange = endDate.getTime() - beginDate.getTime();
聽聽聽聽聽聽聽 return dateRange;
聽聽聽 }
聽聽聽 /*
聽聽聽聽 * 鏃ユ湡鐩稿噺寰楀埌鐨勬縐掓暟
聽聽聽聽 */
聽聽聽 public static long sub(String strBeginDate, String strEndDate) {
聽聽聽聽聽聽聽 long dateRange=0;
聽聽聽聽聽聽聽 int num = 0;
聽聽聽聽聽聽聽 Date beginDate = strToDate(strBeginDate);
聽聽聽聽聽聽聽 Date endDate = strToDate(strEndDate);
聽聽聽聽聽聽聽 dateRange = endDate.getTime() - beginDate.getTime();
聽聽聽聽聽聽聽 return dateRange;
聽聽聽 }
聽聽聽 /*
聽聽聽聽 * 鏃ユ湡鐩稿噺寰楀埌鐨勫ぉ鏁?br />聽聽聽聽 */
聽聽聽 public static String subToDay(String strBeginDate, String strEndDate){
聽聽聽聽聽聽聽 String dayNum = "";
聽聽聽聽聽聽聽 long dateRange = sub(strBeginDate,strEndDate);
聽聽聽聽聽聽聽 dayNum = ""+(dateRange/MILLISECONDS_PER_DAY);
聽聽聽聽聽聽聽 return dayNum;
聽聽聽 }
聽聽聽 /*
聽聽聽聽 * 鏃ユ湡鐩稿噺寰楀埌鐨勭鏁?br />聽聽聽聽 */
聽聽聽 public static String subToSecond(String aMask,String strBeginDate, String strEndDate){
聽聽聽聽聽聽聽 String secNum = "";
聽聽聽聽聽聽聽 long dateRange = sub(aMask,strBeginDate,strEndDate);
聽聽聽聽聽聽聽 secNum = ""+(dateRange/MILLISECONDS_PER_SECOND);
聽聽聽聽聽聽聽 return secNum;
聽聽聽 }
聽聽聽 public static String subToSecond(String strBeginDate, String strEndDate){
聽聽聽聽聽聽聽 String secNum = "";
聽聽聽聽聽聽聽 long dateRange = sub("yyyy-MM-dd HH:mm:ss",strBeginDate,strEndDate);
聽聽聽聽聽聽聽 secNum = ""+(dateRange/MILLISECONDS_PER_SECOND);
聽聽聽聽聽聽聽 return secNum;
聽聽聽 }
聽聽聽 public static void main(String[] args) {
聽聽聽聽聽聽聽 System.out.println("鎸夐粯璁ゆ牸寮忚繑鍥炰粖澶╂棩鏈?"+getToday());
聽聽聽聽聽聽聽 System.out.println("鎸夋寚瀹氭牸寮忚繑鍥炰粖澶╂棩鏈?"+getToday("yyyy-MM-dd HH:mm:ss"));
聽聽聽聽聽聽聽 System.out.println("鏃ユ湡鐩稿樊澶╂暟:"+subToDay("2006-08-02 23:02:01", "2006-08-03 01:02:01"));
聽聽聽聽聽聽聽 System.out.println("鏃ユ湡鐩稿樊縐掓暟:"+subToSecond("2006-08-02 23:02:01", "2006-08-03 01:02:01"));
聽聽聽聽聽聽聽 System.out.println("褰撳墠鏃墮棿:"+getCurrentTime());
聽聽聽 }
}
1銆?span style="FONT: 7pt 'Times New Roman'">聽 鍦?/span> jboss 涓厤緗暟鎹簮錛?/span> ( 涓涓?/span> *-ds.xml 鏂囦歡閰嶇疆涓涓暟鎹簮 )
A
銆佷粠
D:\jboss-
鍒?/span>
D:\rone3\jboss-
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
聽 <local-tx-datasource>
聽聽聽 <jndi-name>test/jndi</jndi-name>
聽聽聽 <connection-url>jdbc:oracle:oci:@rone</connection-url>
聽聽聽 <driver-class>oracle.jdbc.driver.Oracle Driver</driver-class>
聽聽聽 <user-name>test</user-name>
聽聽聽 <password>test</password>
聽<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
</exception-sorter-class-name>
聽聽聽聽聽 <metadata>
聽聽聽聽聽聽聽聽 <type-mapping>Oracle9i</type-mapping>
聽聽聽聽聽 </metadata>
聽 </local-tx-datasource>
</datasources>
鍦ㄥ簲鐢ㄤ腑閰嶇疆鏁版嵁婧?鎶婂簲鐢ㄩ儴緗?/span>
鍒?/span>
D:\jboss-
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE jboss-web
聽聽聽 PUBLIC "-//JBoss//DTD Web Application 2.3V2//EN"
聽聽聽 "http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd">
<jboss-web>
<context-root>/</context-root> //鍙互 鎶?/span> test 搴旂敤鎸囧悜鏍硅礬寰?/span>
<resource-ref>
聽聽聽聽聽聽聽 <res-ref-name>test/jndi</res-ref-name>
聽聽聽聽聽聽聽 <jndi-name>java:test/jndi</jndi-name>//瀵瑰簲jboss鏈嶅姟鍣ㄤ笂璁劇疆鐨刯ndi
</resource-ref>
</jboss-web>
騫剁‘淇?/span> web.xml 涓湁濡備笅浠g爜孌碉細
聽 <resource-ref id="ResourceRef_1">
聽聽聽 <res-ref-name>test/jndi</res-ref-name>//瀵瑰簲jboss-web.xml涓殑res-ref-name
聽聽聽 <res-type>javax.sql.DataSource</res-type>
聽聽聽 <res-auth>Container</res-auth>
聽 </resource-ref>
澶囨敞:
a.瑕佹妸鏁版嵁搴撻┍鍔ㄧ▼搴?/span> ojdbc4.jar 鏀懼叆 default/lib 涓?
b.OCI 椹卞姩娉ㄦ剰浜嬮」錛氶渶瑕?/span> oralce 瀹㈡埛绔紱鍦?/span> MyEclipse 涓惎鍔?/span> JBOSS 錛岄渶瑕佹妸 C:\oracle\ora92\bin 璺緞涓嬬殑 ocijdbc9.dl l 鏂囦歡鎷瘋礉鍒?/span> jdk 瀹夎鐩綍涓嬬殑 bin 鏂囦歡澶逛笅銆傚惁鍒欎細鍑虹幇鎵句笉鍒版暟鎹簮鐨勯敊璇?
2.jboss搴旂敤涔辯爜闂,鏇存敼D:\jboss-4.0.0\server\default\deploy\jboss鏂囦歡web-tomcat50.sar\server.xml:
聽聽聽聽 <Connector port="8080" address="${jboss.bind.address}"
聽聽聽聽聽聽聽聽 maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
聽聽聽聽聽聽聽聽 enableLookups="false" redirectPort="8443" acceptCount="100"
聽聽聽聽聽聽聽聽 connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>