#
e-Gen Developer
e-Gen Developer是一個(gè)快速應(yīng)用程序開發(fā)(RAD)環(huán)境。利用它能夠進(jìn)行Web應(yīng)用程序的高產(chǎn)開發(fā)。e-Gen
Developer完全采用Java開發(fā)并基于JSF2.8與Struts框架。e-Gen的主要目的是克服IT管理所面對(duì)的一些相關(guān)挑戰(zhàn)如:提高開發(fā)效
率,減少維護(hù)成本與減少訓(xùn)練團(tuán)隊(duì)成員所需要的時(shí)間。
初步使用了一下e-gen,首先這個(gè)開源項(xiàng)目最別致的地方就是使用WEB方式進(jìn)行開發(fā),可見J2EE的強(qiáng)大功能,好象沒(méi)有一套程序能夠有這么大的
擴(kuò)展性。對(duì)這個(gè)工具愛不釋手,從上午到下午一直在看見他的Tutorials,不過(guò)最讓人遺憾的就是沒(méi)有加入SPRING進(jìn)行處理事務(wù)。整個(gè)項(xiàng)目很有新
意,想作者也是化了不少心思在這個(gè)項(xiàng)目上。
還是先感謝一下這個(gè)開源項(xiàng)目的作者。我感覺(jué)這個(gè)項(xiàng)目完成了一些技術(shù)上的難題,作者完全可以包裝一下做為比如IBM產(chǎn)品里的一個(gè)模塊,絕對(duì)能夠給開發(fā)者帶來(lái)全新的開發(fā)體驗(yàn)。
首先說(shuō):學(xué)習(xí)會(huì)這個(gè)軟件可以馬上得到第一桶金。也就是說(shuō)這個(gè)軟件可以應(yīng)用到現(xiàn)應(yīng)用當(dāng)中,立即取得效益,產(chǎn)品成熟度:已經(jīng)成熟。
C-JDBC是一個(gè)數(shù)據(jù)庫(kù)集成方式,包括同步、復(fù)制、備份和集群等,Sequoia的出現(xiàn) 也說(shuō)明了C-JDBC的成熟性,在這里萬(wàn)分感覺(jué)INRIA公司,一個(gè)法蘭西的公司。
難度是在Console的配置和Controller的配置等,我在這個(gè)軟件學(xué)習(xí)當(dāng)中繞了個(gè)彎,就是JDK必順為1.4以上,假如你要安裝ORACLE9以下的版本,一定要在PATH環(huán)境變量當(dāng)中改變一下順序了。
C-JDDBC是一個(gè)優(yōu)秀的廉價(jià)集成方案,可以集成幾乎所有的數(shù)據(jù)庫(kù),我想這個(gè)工具的認(rèn)真學(xué)習(xí)將會(huì)給我提供一個(gè)賺錢的機(jī)會(huì)。呵呵。
一定要好好學(xué)習(xí),看官有興趣就加我。
DEMO下載
公司網(wǎng)站
OpenToro 【Java開源 Web框架】
OpenToro
是一個(gè)可以讓我們以靈活和自動(dòng)的方式來(lái)開發(fā)web數(shù)據(jù)庫(kù)應(yīng)用程序的工具.利用OpenToro可以省掉在開發(fā)一個(gè)Web數(shù)據(jù)庫(kù)應(yīng)用程序時(shí)編寫JSP與
SQL代碼這樣辛苦乏味的工作.利用它就可以很容易地列出數(shù)據(jù)庫(kù)中的表格與其它內(nèi)容并生成可以新增,修改,刪除的數(shù)據(jù).OpenToro兼容所有支持
SQL-92標(biāo)準(zhǔn)語(yǔ)法的數(shù)據(jù)庫(kù)如:MySQL,Oracle,Access,與SQL-Server.
這個(gè)軟件是代替哪些對(duì)數(shù)據(jù)庫(kù)快速操作,而不分析其業(yè)務(wù)邏輯的JAVA實(shí)現(xiàn)。整個(gè)Tutorial的定制性特別強(qiáng),你一定要看完他的DEMO再來(lái)操作,尤其
是MYSQL的哪個(gè)表,最終對(duì)這個(gè)東東的評(píng)價(jià)是半自動(dòng)化的完成了對(duì)數(shù)據(jù)庫(kù)表的簡(jiǎn)單操作。而且還需要你手工修改已經(jīng)生成的XML文件等。總則說(shuō)吧,這個(gè)東東
有點(diǎn)像PB的哪個(gè)意思,先不管業(yè)務(wù)邏輯就能夠快速的生成一個(gè)對(duì)數(shù)據(jù)庫(kù)操作的WEB實(shí)現(xiàn),呵呵,假如項(xiàng)目要求不高的前提下,可以考慮給用戶一個(gè)甜餅。
今天看了OpenSyncro這個(gè)小工具,感覺(jué)他很好用,而且方便簡(jiǎn)單。
OpenSyncro是一個(gè)輕量級(jí),開源企業(yè)應(yīng)用集成工具。它運(yùn)行在Apache
Tomcat服務(wù)器上并把它的配置信息存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中.它的特性包括內(nèi)嵌數(shù)據(jù)轉(zhuǎn)換器能夠把CSV表格和其它基于文本的數(shù)據(jù)格式轉(zhuǎn)換成XML,支
持XSL轉(zhuǎn)換(XSLT),支持訪問(wèn)FTP服務(wù)器上的文件。OpenSyncro可通過(guò)組件來(lái)進(jìn)行擴(kuò)展從而使得它連接到SAP Business
One與HansaWorld這樣的ERP/CRM系統(tǒng).
OpenSyncro
它的思想比較簡(jiǎn)單,就是傳輸文件,在傳輸文件的過(guò)程當(dāng)中,可以對(duì)文件進(jìn)行輪換,轉(zhuǎn)換成標(biāo)準(zhǔn)的XML格式,應(yīng)該來(lái)說(shuō)這是一個(gè)比較簡(jiǎn)單的實(shí)現(xiàn)。
說(shuō)說(shuō)它的功能:
1、文件格式轉(zhuǎn)換
4.2.1 ASCIItoXMLConverter
4.2.2 CSVtoXMLConverter
4.2.3 JoinConverter
4.2.4 SplitConverter
4.2.5 XMLGroupExpander
4.2.6 XSLTConverter
4.2.7 XSLT20Converter
2、文件傳輸方式
4.1.1 DirectorySource
4.1.2 FTPSource
4.1.3 RemoteOrderSource
4.1.4 LocalFileSource
4.1.5 TimestampFileSource
3、簡(jiǎn)單日志功能
目前我使用絕對(duì)路徑的方式已經(jīng)測(cè)試過(guò)第一種方式的傳遞,總之感覺(jué)還是比較簡(jiǎn)單的,假如對(duì)其進(jìn)行更加強(qiáng)大的擴(kuò)展,可能將成為一種非常適用簡(jiǎn)單的初級(jí)的EAI集成工具。
Corinis CCM 【Java開源 內(nèi)容管理系統(tǒng)(CMS)】
Corinis CCM是一個(gè)基于Java/XML的開源內(nèi)容管理系統(tǒng).它結(jié)合了一個(gè)專業(yè)內(nèi)容管理系統(tǒng)所應(yīng)具備的功能如:WYSIWIG編輯,基于角色的QA等.整個(gè)系統(tǒng)采用模塊設(shè)計(jì)使得系統(tǒng)變得易于擴(kuò)展與重復(fù)利用,它包含的模塊有論壇,投票和相冊(cè)等
這個(gè)CMS應(yīng)該來(lái)說(shuō)技術(shù)架構(gòu)也使用了AJAX,但是有很多的BUG,而且圖標(biāo)和實(shí)際功能不能符合,雖然基本布局很讓人喜歡,但是功能操作上不很好用,包括其內(nèi)容是FRANCE語(yǔ)言也算打折的理由。
應(yīng)該來(lái)說(shuō),作者是想做一個(gè)簡(jiǎn)單易用的CMS系統(tǒng),而且還有很弱的論壇和相冊(cè)(照片)管理程序等
我配置了半天也沒(méi)有配置好,雖然有很好的WEB安裝界面,就是數(shù)據(jù)庫(kù)連接時(shí)發(fā)生錯(cuò)誤,作者也不提供SQL代碼,防止萬(wàn)一有錯(cuò)誤產(chǎn)生。現(xiàn)在只是對(duì)其DEMO做了一些操作。如果看客你知SQL代碼,不防也吱我一聲。
edtFTPj
edtFTPj是一個(gè)FTP客戶端包它可以嵌入到應(yīng)用程序中以便以提供FTP的功能.它提供一些方法如:put(),get(),chdir(),dir()與pwd()等來(lái)完成FTP的功能.
通過(guò)對(duì)其的學(xué)習(xí),尤其是取FILENAME是一個(gè)大的挑戰(zhàn),我曾經(jīng)為這個(gè)走了很多的冤枉路,我對(duì)其代碼總結(jié)。
java代碼:
package com.throuhout.j2eemodel.util;
/**
* 保留Enterprisedt公司信息
* Copyright (C) 2000-2004 Enterprise Distributed Technologies Ltd
*
* www.enterprisedt.com
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Bug fixes, suggestions and comments should be sent to support@enterprisedt.com
* nether add by heweiya
* 對(duì)FTP服務(wù)器的通用操作
* ConnFTPServer(String host,String username,String password)
* Upload(String localfile,String filename)
* Download(String localpath)
*
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import com.enterprisedt.net.ftp.FTPClient;
import com.enterprisedt.net.ftp.FTPConnectMode;
import com.enterprisedt.net.ftp.FTPException;
import com.enterprisedt.net.ftp.FTPMessageCollector;
import com.enterprisedt.net.ftp.FTPTransferType;
import com.enterprisedt.util.debug.Logger;
/**
* Simple test class for FTPClient
*
* @author Hans Andersen
* @author Bruce Blackshaw
*/
public class FtpClient {
/**
* Log stream
*/
private static Logger log = Logger.getLogger(FtpClient.class);
private FTPClient ftp = null;
public void ConnFTPServer(String host, String username, String password) {
try {
// set up client
ftp = new FTPClient();
ftp.setRemoteHost(host);
FTPMessageCollector listener = new FTPMessageCollector();
ftp.setMessageListener(listener);
//ftp.setAutoPassiveIPSubstitution(true);
// connect
log.info("Connecting");
ftp.connect();
// login
log.info("Logging in");
ftp.login(username, password);
// set up passive ASCII transfers
log.debug("Setting up passive, ASCII transfers");
ftp.setConnectMode(FTPConnectMode.ACTIVE);
ftp.setType(FTPTransferType.ASCII);
} catch (Exception e) {
log.error("Demo failed", e);
}
}
public void Upload(String localfile, URL url) {
String host = url.getHost();
int port = url.getPort();
File filePath = new File(url.getPath());
String directory = filePath.getParent().substring(1);
String filename = filePath.getName();
try {
//connect(host, port);
ftp.chdir(directory);
ftp.put(new FileInputStream(localfile), filename);
} catch (Exception e) {
log.error("Demo failed", e);
}
}
public void Upload(String localpath,String filename) {
try {
ftp.put(localpath, filename);
} catch (Exception e) {
log.error("Demo failed", e);
}
}
public void DownloadAll(String localpath){
try {
ftp.chdir("xml");
String[] files = ftp.dir(".", true);
for (int i = 0; i < files.length; i++) {
String testfile = files[i].substring(39);//大家可以看到這里,testfile取μ貌皇?filename而是一個(gè)字條串,我?皇譴涌?的位置取得FILENAME,方法可能很笨,但是我不知道如何來(lái)取得真正的FILENAME。
log.debug(files[i]);
ftp.get(new FileOutputStream(localpath+testfile),testfile);
//ftp.get(localpath + testfile, testfile);
}
} catch (IOException e) {
// TODO 自動(dòng)生成 catch 塊
e.printStackTrace();
} catch (FTPException e) {
// TODO 自動(dòng)生成 catch 塊
e.printStackTrace();
}
}
public void DisConn(){
try {
ftp.quit();
} catch (IOException e) {
// TODO 自動(dòng)生成 catch 塊
e.printStackTrace();
} catch (FTPException e) {
// TODO 自動(dòng)生成 catch 塊
e.printStackTrace();
}
}
}
哈哈,我要努力表演了,臺(tái)下的觀眾要看好了。
2006年將風(fēng)云再起時(shí),江湖上不會(huì)少我一個(gè)劍客行。
呵呵,有興趣的朋友就跟風(fēng)吧。加入你的RSS當(dāng)中。