CJSDN开发者社区 CJSDN开发者社区
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» CJSDN开发者社区 » Java EE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 (原创)Ant、Xdoclet、struts、jboss、intellij联合开发,斑竹鼓励
linux_china



版主


发贴: 749
积分: 230
于 2003-08-05 13:22 user profilesend a private message to usersend email to linux_chinasearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
使用这几款工具开发已有几个月啦,现在和大家一起分享,并希望大家提出宝贵意见,也期望斑竹再加一分,我近不了ftp啦。:Tongue
开始吧
1 安装intellij,然后将附件中的中resource/intellij的目录拷贝到intellij的config目录,87x的版本设置不一样,自行设置。
2 打开附件的项目,同时配置一下相关环境(我的和你不一样)
3 在cn.edu.bit82.ejb点击new,选择ejb stateless 2.0,输入名称BasicServiceBean,必须已Bean结尾(整合了velocity)
4 点击ant面板,执行BasicService的target,一个完整的ejb就完成啦。
5 配置jboss,下载jboss.3.2.1,配置oracle数据库,默认的jndi名称即可。
6 运行jboss,部署ejbAngry

注意事项:
1 项目的目录结构很重要,应该和标准一致
2 相关的开发包到位
3 xdoclet精通

1 代码演示
----------------- struts Form:
package cn.edu.bit82.form;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.ValidatorForm;

import javax.servlet.http.HttpServletRequest;

/**
*
* User: <a href="mailto:linux_china@hotmail.com">chenlibing</a>
* Date: 2003-5-3
* @struts.form name="LogonForm"
*/
public class LogonForm extends ValidatorForm
{
private String name;
private String password;
private String sex;

/**
*
* @return
*/
public String getName()
{
return name;
}

/**
*
* @param name
*
* @struts.validator type="required"
* @struts.validator type="minlength" arg1value="${var:minlength}"
* @struts.validator-args arg0resource="LogonForm.logonName"
* @struts.validator-var name="minlength" value="3"
*/
public void setName(String name)
{
this.name = name;
}

/**
*
* @return
*
*/
public String getPassword()
{
return password;
}

public void setPassword(String password)
{
this.password = password;
}

public void reset(ActionMapping actionMapping, HttpServletRequest request)
{
this.name = null;
this.password = null;
}
}

-----------------ejb 代码:
package cn.edu.bit82.ejb;

import javax.naming.*;
import javax.ejb.*;
import javax.sql.*;
import java.sql.*;

/**
* <b>description:</b> 最基本的ejb
* @author <a href="mailto:linux_china@hotmail.com">chenlibing</a>
* Date: 2003-8-5
*
* @ejb.bean type="Stateless" name="BasicService" view-type="both"
* jndi-name="ejb/remote/BasicService" local-jndi-name="ejb/local/BasicService"
* transaction-type="Container"
* @ejb.resource-ref res-name="jdbc/oracle" res-type="javax.sql.DataSource" res-auth="Container"
* @ejb.transaction type="Required"
* @ejb.transaction-type type="Container"
*
* @jboss.resource-manager res-man-name="oracleDbManager" res-man-jndi-name="java:OracleDS"
* @jboss.resource-ref res-ref-name="jdbc/oracle" resource-name="oracleDbManager"
*/
public class BasicServiceBean implements SessionBean
{
private SessionContext sessionContext = null;

public void ejbCreate()
{
}

public void ejbRemove()
{
}

public void ejbActivate()
{
}

public void ejbPassivate()
{
}

public void setSessionContext(SessionContext sessionContext)
{
this.sessionContext = sessionContext;
}

private Connection getConnection()
{
Connection conn = null;
try
{
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/oracle");
conn = ds.getConnection();
} catch (Exception e)
{
e.printStackTrace();
}
return conn;
}

private void closeConnection(Connection con)
{
if (con != null)
{
try
{
con.close();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}

/**
* 基本操作
* @return 返回用户名
*
* @ejb.interface-method
*/
public String getUserName()
{
return "陈立兵";
}

/**
* 数据库简单操作
* @return 返回数据库当前时间
*
* @ejb.interface-method
*/
public Date getDBResult()
{
Date nowDate = null;
String SQLSelect = "select sysdate from dual";
Connection conn = null;
try
{
conn = getConnection();
Statement smt = conn.createStatement();
ResultSet rs = smt.executeQuery(SQLSelect);
if (rs.next())
{
nowDate = rs.getDate(1);
}
rs.close();
smt.close();
} catch (Exception e)
{
e.printStackTrace();
System.out.println("SQL Error:" + SQLSelect);
} finally
{
closeConnection(conn);
}
return nowDate;
}
}

----build.xml(包含ejb,web相关的target)
<?xml version="1.0" encoding="gb2312" ?>
<project name="ejbdemo" default="displayHelp" basedir=".">
<!-- set the neccesary property info -->
<property name="project.encoding" value="gb2312"/>
<property name="project.bin" location="bin"/>
<property name="project.src" location="src"/>
<property name="project.lib" location="lib"/>
<property name="project.doc" location="docs"/>
<property name="project.temp" location="temp"/>
<property name="project.apidoc" location="docs/api"/>
<property name="project.apidoc.resource" location="docs/api/resource"/>
<property name="project.resource" location="resource"/>
<property name="project.dist.lib" location="dist/lib"/>
<property name="project.build.lib" location="build/lib"/>
<property name="project.dist.classes" location="dist/classes"/>
<property name="project.build.classes" location="build/classes"/>
<property name="project.basePackageDirectory" value="cn/edu/bit82"/>
<property name="project.basePackageName" value="cn.edu.bit82"/>

<!-- set the project's classpath -->
<path id="project.classpath">
<fileset dir="${project.lib}">
<include name="*.jar"/>
<include name="**/*.jar"/>
</fileset>
<pathelement location="${project.build.classes}"/>
</path>

<!-- initial -->
<target name="prepare" description="initial job,for example: create directory">
<mkdir dir="${project.bin}"/>
<mkdir dir="${project.src}"/>
<mkdir dir="${project.lib}"/>
<mkdir dir="${project.temp}"/>
<mkdir dir="${project.apidoc.resource}"/>
<mkdir dir="${project.resource}"/>
<mkdir dir="${project.dist.lib}"/>
<mkdir dir="${project.build.lib}"/>
<mkdir dir="${project.dist.classes}/META-INF"/>
<mkdir dir="${project.build.classes}/META-INF"/>
</target>

<!-- generate package directory -->
<target name="packageGen" description="generate package directory">
<mkdir dir="${project.src}/${project.basePackageDirectory}"/>
<mkdir dir="${project.src}/${project.basePackageDirectory}/ejb"/>
<mkdir dir="${project.src}/${project.basePackageDirectory}/interfaces"/>
<mkdir dir="${project.src}/${project.basePackageDirectory}/pk"/>
<mkdir dir="${project.src}/${project.basePackageDirectory}/util"/>
<mkdir dir="${project.src}/${project.basePackageDirectory}/junit"/>
<mkdir dir="${project.src}/${project.basePackageDirectory}/temp"/>
</target>

<!-- display target -->
<target name="displayHelp" description="help info">
<echo> please use command: ant -projecthelp </echo>
</target>

<!-- display logo target -->
<target name="displayLogo" description="display company logo">
<splash imageurl="file:/${project.resource}/logo.gif" showduration="2000"/>
</target>

<!-- define some custom task target -->
<target name="myTaskDef" description="define custom task">
<taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask" classpathref="project.classpath"/>
<taskdef name="webdoclet" classname="xdoclet.modules.web.WebDocletTask" classpathref="project.classpath"/>
</target>

<!-- generate apidoc target -->
<target name="javadoc" description="generate api document">
<javadoc sourcepath="${project.src}" destdir="${project.apidoc}" classpathref="project.classpath"
packagenames="${project.basePackageName},
${project.basePackageName}.ejb,
${project.basePackageName}.interfaces,
${project.basePackageName}.pk,
${project.basePackageName}.util,
${project.basePackageName}.junit"
Encoding="${project.encoding}" charset="${project.encoding}" author="true" version="true" use="true"
windowtitle="cn.edu.bit82: the project of ejbdemo api document">
<bottom><![CDATA[<i>Copyright © 2002 bit82.edu.cn Corp. All Rights Reserved.</i>]]></bottom>
</javadoc>
</target>

<target name="i18n">
<delete dir="${project.build.classes}" includes="**/*.properties"/>
<native2ascii src="${project.src}" encoding="${project.encoding}" dest="${project.build.classes}"
includes="**/*.properties"/>
</target>

<target name="webxmlGen" depends="myTaskDef" description="generate web.xml content">
<webdoclet destDir="${project.WEB-INF}" excludedtags="@version,@author">
<fileset dir="${project.src}">
<include name="**/servlet/*Servlet.java"/>
<include name="**/filter/*Filter.java"/>
<include name="**/listener/*Listener.java"/>
</fileset>
<deploymentdescriptor mergeDir="${project.merge.directory}"/>
</webdoclet>
</target>

<target name="struts-config" depends="myTaskDef" description="generate struts config file">
<webdoclet destDir="${project.WEB-INF}" excludedtags="@version,@author">
<fileset dir="${project.src}">
<include name="**/action/*Action.java"/>
<include name="**/form/*Form.java"/>
<include name="**/plugin/*Plugin.java"/>
</fileset>
<strutsconfigxml version="1.1" mergeDir="${project.merge.directory}"/>
</webdoclet>
</target>

<target name="validatorGen" depends="myTaskDef" description="generate web.xml content">
<webdoclet destDir="${project.WEB-INF}" excludedtags="@version,@author" force="true">
<fileset dir="${project.src}">
<include name="**/form/*Form.java"/>
</fileset>
<strutsvalidationxml/>
</webdoclet>
</target>

<!-- 编译,打包ejb-->
<target name="BasicService" depends="myTaskDef">
<delete>
<fileset dir="${project.build.classes}/META-INF" includes="*.xml"/>
</delete>
<ejbdoclet destdir="${project.src}" excludedtags="@version" ejbspec="2.0">
<fileset dir="${project.src}">
<include name="**/BasicServiceBean.java"/>
</fileset>
<packageSubstitution packages="ejb,bean" substituteWith="interfaces"/>
<remoteinterface/>
<localinterface/>
<homeinterface/>
<localhomeinterface/>
<deploymentdescriptor destdir="${project.build.classes}/META-INF" xmlencoding="${project.encoding}"/>
<jboss version="3.0" destdir="${project.build.classes}/META-INF" xmlencoding="${project.encoding}"/>
</ejbdoclet>
<javac srcdir="${project.src}" destdir="${project.build.classes}"
includes="**/BasicService.java,**/BasicServiceLocal*.java,**/BasicServiceHome.java,**/BasicServiceBean.java"
classpathref="project.classpath">
</javac>
<jar destfile="${project.build.lib}/BasicService.jar" basedir="${project.build.classes}"
includes="**/BasicService.class,**/BasicServiceLocal*.class,**/BasicServiceHome.class,**/BasicServiceBean.class,META-INF/*.xml">
</jar>
</target>

<!-- package all the class and interface for client -->
<target name="ejbInterface">
<jar destfile="${project.build.lib}/common.jar" basedir="${project.build.classes}"
includes="${project.basePackageDirectory}/**/*.*" excludes="**/ejb/*.*,**/temp/*.*,**/junit/*.*"></jar>
</target>

</project>




Mastering Spring MVC 3

话题树型展开
人气 标题 作者 字数 发贴时间
10995 (原创)Ant、Xdoclet、struts、jboss、intellij联合开发,斑竹鼓励 linux_china 12693 2003-08-05 13:22
7130 Re:(原创)Ant、Xdoclet、struts、jboss、intellij联合开发,斑竹鼓励---1 linux_china 198 2003-08-05 13:32
7606 Re:(原创)Ant、Xdoclet、struts、jboss、intellij联合开发,斑竹鼓励---2 linux_china 78 2003-08-05 13:39
7029 Re:(原创)Ant、Xdoclet、struts、jboss、intellij联合开发,斑竹鼓励----3 linux_china 148 2003-08-05 13:49
6380 Re:(原创)Ant、Xdoclet、struts、jboss、intellij联合开发,斑竹鼓励 supermy 14 2003-08-07 23:29
6522 Re:(原创)Ant、Xdoclet、struts、jboss、intellij联合开发,斑竹鼓励---4 linux_china 361 2003-08-09 21:28
6195 Re:(原创)Ant、Xdoclet、struts、jboss、intellij联合开发,斑竹鼓励---4 gunrose 166 2003-09-13 09:38
6270 Re:(原创)Ant、Xdoclet、struts、jboss、intellij联合开发,斑竹鼓励---4 donnan 127 2003-09-18 17:43
6106 Re:(原创)Ant、Xdoclet、struts、jboss、intellij联合开发,斑竹鼓励 bbbaby 10 2003-09-14 13:08
6217 Re:(原创)Ant、Xdoclet、struts、jboss、intellij联合开发,斑竹鼓励 linux_china 131 2003-09-14 21:22
6166 Re:(原创)Ant、Xdoclet、struts、jboss、intellij联合开发,斑竹鼓励 gunrose 17 2003-09-15 16:38

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2010 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号
客服电话 18950077788    客服信箱 support@cjsdn.net    客服QQ 714913