createfile.jsp
<%@page contenttype="text/html;charset=gb2312"%>
<%@page import="java.io.*"%>
<%
try
{
string ejb_type=request.getparameter("ejb_type");
string ejb_name=request.getparameter("ejb_name");
string server_type=request.getparameter("server_type");
string package_name=request.getparameter("package_name");
string home_method=request.getparameter("home_method").trim();
string remote_method=request.getparameter("remote_method").trim();
int location=0;
string temp="";
boolean issession;
printwriter pw_home=new printwriter(new filewriter(ejb_name+"//"+ejb_name+"home.java"));
printwriter pw_remote=new printwriter(new filewriter(ejb_name+"//"+ejb_name+"remote.java"));
printwriter pw_ejb=new printwriter(new filewriter(ejb_name+"//"+ejb_name+"ejb.java"));
if (!package_name.equals(""))
{
pw_home.println("package "+package_name.trim()+";");
pw_remote.println("package "+package_name.trim()+";");
pw_ejb.println("package "+package_name.trim()+";");
}
//bean接口贯穿于home与remote接口中
pw_ejb.println();
if (!ejb_type.equals("entity"))
{
//session
issession=true;
pw_ejb.println("public class "+ejb_name+"ejb implements javax.ejb.sessionbean");
pw_ejb.println("{");
pw_ejb.println(" public void ejbremove()");
pw_ejb.println(" {");
pw_ejb.println(" }");
pw_ejb.println();
pw_ejb.println(" public void ejbactivate()");
pw_ejb.println(" {");
pw_ejb.println(" }");
pw_ejb.println();
pw_ejb.println(" public void ejbpassivate()");
pw_ejb.println(" {");
pw_ejb.println(" }");
pw_ejb.println();
pw_ejb.println(" public void setsessioncontext(javax.ejb.sessioncontext sc)");
pw_ejb.println(" {");
pw_ejb.println(" }");
pw_ejb.println();
}
else
{
//entity
issession=false;
pw_ejb.println("public class "+ejb_name+"ejb implements javax.ejb.entitybean");
pw_ejb.println("{");
pw_ejb.println(" public void ejbremove()");
pw_ejb.println(" {");
pw_ejb.println(" }");
pw_ejb.println();
pw_ejb.println(" public void ejbactivate()");
pw_ejb.println(" {");
pw_ejb.println(" }");
pw_ejb.println();
pw_ejb.println(" public void ejbpassivate()");
pw_ejb.println(" {");
pw_ejb.println(" }");
pw_ejb.println();
pw_ejb.println(" public void ejbload()");
pw_ejb.println(" {");
pw_ejb.println(" }");
pw_ejb.println();
pw_ejb.println(" public void ejbstore()");
pw_ejb.println(" {");
pw_ejb.println(" }");
pw_ejb.println();
pw_ejb.println(" public void unsetentitycontext()");
pw_ejb.println(" {");
pw_ejb.println(" }");
pw_ejb.println();
pw_ejb.println(" public void setentitycontext(javax.ejb.entitycontext ec)");
pw_ejb.println(" {");
pw_ejb.println(" }");
pw_ejb.println();
}
//home interface
pw_home.println();
pw_home.println("public interface "+ejb_name+"home extends javax.ejb.ejbhome");
pw_home.println("{");
for(int i=0;i<home_method.length();i++)
{
if(home_method.charat(i)==10 || i==(home_method.length()-1))
{
temp=home_method.substring(location,i+1).trim();
//超界则退出
if(temp.length()<=1)break;
int temp_blank=temp.lastindexof(" ");
if (temp_blank==-1)
{
/* if(temp.indexof("(")==-1)
{
pw_home.print(" public "+ejb_name+"remote "+temp+"() throws javax.rmi.remoteexception");
}
else
{
pw_home.print(" public "+ejb_name+"remote "+temp+" throws javax.rmi.remoteexception");
}
*/
response.sendredirect("error.jsp");
}
else
{
//bean
if(temp.substring(temp_blank+1).equals(ejb_name+"remote"))
{
//session 返回void remote 返回主键
if(issession)
{
pw_ejb.print(" public void ejb"+temp.substring(0,1).touppercase()+temp.substring(0,temp_blank).substring(1));
}
else
{
string primarykey=request.getparameter("primarykey");
pw_ejb.print(" public "+primarykey+" ejb"+temp.substring(0,1).touppercase()+temp.substring(0,temp_blank).substring(1));
}
}
else
{
pw_ejb.print(" public "+temp.substring(temp_blank+1)+" ejb"+temp.substring(0,1).touppercase()+temp.substring(0,temp_blank).substring(1));
}
if(temp.indexof("(")==-1)
{
pw_home.print(" public "+temp.substring(temp_blank+1)+" "+temp.substring(0,temp_blank)+"() throws javax.rmi.remoteexception");
pw_ejb.print(" () ");
}
else
{
pw_home.print(" public "+temp.substring(temp_blank+1)+" "+temp.substring(0,temp_blank)+" throws javax.rmi.remoteexception");
}
}
//exception
if(temp.substring(0,6).equals("create"))
{
pw_home.print(",javax.ejb.createexception");
pw_ejb.print(" throws javax.ejb.createexception");
}
else if(temp.substring(0,4).equals("find"))
{
pw_home.print(",javax.ejb.finderexception");
pw_ejb.print(" throws javax.ejb.finderexception");
}
pw_home.println(";");
pw_ejb.println();
pw_ejb.println(" {");
pw_ejb.println(" }");
pw_ejb.println();
location=i+1;
}
}
pw_home.println("}");
location=0;
//remote interface
pw_remote.println();
pw_remote.println("public interface "+ejb_name+"remote extends javax.ejb.ejbobject");
pw_remote.println("{");
for(int i=0;i<remote_method.length();i++)
{
if(remote_method.charat(i)==10 || i==(remote_method.length()-1))
{
temp=remote_method.substring(location,i+1).trim();
//超界则退出
if(temp.length()<=1)break;
int temp_blank=temp.lastindexof(" ");
if (temp_blank==-1)
{
/* if(temp.indexof("(")==-1)
{
pw_remote.print(" public void "+temp+"() throws javax.rmi.remoteexception");
}
else
{
pw_remote.print(" public void "+temp+" throws javax.rmi.remoteexception");
}
*/
response.sendredirect("error.jsp");
}
else
{
if(temp.indexof("(")==-1)
{
pw_remote.print(" public "+temp.substring(temp_blank+1)+" "+temp.substring(0,temp_blank)+"() throws javax.rmi.remoteexception");
pw_ejb.print(" public "+temp.substring(temp_blank+1)+" "+temp.substring(0,temp_blank)+"()");
}
else
{
pw_remote.print(" public "+temp.substring(temp_blank+1)+" "+temp.substring(0,temp_blank)+" throws javax.rmi.remoteexception");
pw_ejb.print(" public "+temp.substring(temp_blank+1)+" "+temp.substring(0,temp_blank));
}
}
pw_remote.println(";");
pw_ejb.println();
pw_ejb.println(" {");
pw_ejb.println(" }");
pw_ejb.println();
location=i+1;
}
}
pw_remote.println("}");
location=0;
pw_ejb.println("}");
pw_home.close();
pw_remote.close();
pw_ejb.close();
%>
<html>
<body>
<script language="javascript">
function err(form,flag,server)
{
if (flag=="false")
{
if (form.primkey_field.value=="")
{
window.alert("请输入主键名称");
form.primkey_field.focus();
return false;
}
if (stringfilter(form.primkey_field.value)==1)
{
form.primkey_field.focus();
form.primkey_field.value="";
return false;
}
}
/* if (server=="weblogic")
{
if (form.jndi_name.value=="")
{
window.alert("请输入jndi名称");
form.jndi_name.focus();
return false;
}
if (stringfilter(form.jndi_name.value)==1)
{
form.jndi_name.focus();
form.jndi_name.value="";
return false;
}
}
*/ return true;
}
function stringfilter(strfilter)
{
for (i=0;i<strfilter.length;i++)
{
if((strfilter.charat(i)>="a" && strfilter.charat(i)<="z")||(strfilter.charat(i)>="a"&&strfilter.charat(i)<="z")||(strfilter.charat(i)>="0"&&strfilter.charat(i)<="9")||(strfilter.charat(i)=="_"))
{}
else
{
window.alert ("您的输入中有非法字符");
return 1;
}
}
return 0;
}
</script>
<center>
<font size="5" color="red">现在进行development deploy配置(也即.xml的配置)</font><br>
<form action="createxml.jsp?ejb_type=<%=ejb_type%>&ejb_name=<%=ejb_name%>&server_type=<%=server_type%>&package_name=<%=package_name%>&prim_key_class=<%=request.getparameter("primarykey")%>" method="post" name="form1" onsubmit="return err(form1,<%=issession%>,<%=server_type%>)">
<table border="1" width="500">
<tr>
<td align="right" width="300">
请选择事务处理的类型:
</td>
<td align="left" width="200">
<select name="transaction_type">
<option value="container">container</option>
</select>
</td>
</tr>
<tr>
<td align="right" width="300">
请选择事务的属性:
</td>
<td align="left" width="200">
<select name="trans_attribute">
<option value="required">required</option>
</select>
</td>
</tr>
<%if (ejb_type.equals("entity"))
{%>
<tr>
<td align="right" width="300">
请选择持久行的类型:
</td>
<td align="left" width="200">
<select name="persistence_type">
<option value="bean">bean</option>
<option value="container">container</option>
</select>
</td>
</tr>
<tr>
<td align="right" width="300">
reentrant:
</td>
<td align="left" width="200">
<select name="reentrant">
<option value="false" selected>false</option>
<option value="true">true</option>
</select>
</td>
</tr>
<tr>
<td align="right" width="300">
请输入主键名称:
</td>
<td align="left" width="200">
<input type="text" name="primkey_field">
</td>
</tr>
<%}
if(server_type.equals("weblogic"))
{
%>
<tr>
<td align="right" width="300">
<%if(issession)
{%>
请输入在缓存中最大的beans数:
<%}else{%>
请输入在pool池中最大的beans数:
<%}%>
</td>
<td align="left" width="200">
<input type="text" name="max" value="100">
</td>
</tr>
<tr>
<td align="right" width="300">
请输入jndi名称:
</td>
<td align="left" width="200">
<input type="text" name="jndi_name" value="<%=ejb_name+"_jndi"%>">
</td>
</tr>
<%}%>
<tr>
<td colspan="2" align="center"><input type="submit" value="提交"> <input type="reset" value="重填"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
<%
}
catch(exception e)
{
out.print(e.getmessage());
}%>
