j2ee配置指南3.htm
来自「J2EE配置指南(讲解j2ee开发环境的配置)」· HTM 代码 · 共 346 行 · 第 1/2 页
HTM
346 行
<TBODY>
<TR>
<TD>对企业的java apis<BR>Enterprise JavaBeans API, version
1.1<BR>Java Servlets, version 2.2<BR>JavaServer Pages
technology, version 1.1<BR>JDBC Standard Extension, version
2.0<BR>Java Naming and Directory InterfaceTM API, version 1.2
(CosNaming SPI)<BR>RMI/IIOP<BR>Java Transaction API, version
1.0<BR>JavaMail API, version 1.1<BR>Java Messaging Service,
version 1.0 (API only, no implementation)</TD></TR></TBODY></TABLE>
<P> 5.需要的软件。<BR> 首先,你需要安装JDK 1.2 。The JavaTM 2 SDK, Standard
Edition
提供了运行和建立j2ee应用程序的能力。如果你的client在另外一个机器上,client上也必须安装jdk1.2。<BR><BR> 能支持j2ee的jdk1.2如下:<BR><BR> http://www.java.sun.com/products/jdk/1.2/download-solaris.htm<BR> http://www.sun.com/solaris/java<BR> http://www.java.sun.com/products/jdk/1.2/download-windows.html<BR> 其他版本的jdk1.2没有做过测试,并且不支持j2ee。<BR> 注意:jdk1.2中不能安装
The RMI-IIOP standard extension 。</P>
<P> 6.当前的缺陷。<BR> 本版本的目的是向你介绍j2ee技术,给你提供一个向我们反馈信息的机会,以便我们以后做的更好。本版本中有几个缺陷。<BR> 1.Container-Managed
Persistence<BR> 实现基于container-managed persistence 的entity
beans不能完全实现所有的把物体影射到关系型数据库的特性。 <BR><BR> entity bean
类只能影射到一个数据库中的表一个container-managed field
只能影射到一个表中的字段当容器装入container-managed fields
的时候,它回装入所有的container-managed fields
。当装入的数据非常大的时候,性能回受到影响。因为有些数据是商业方法所不需要的。<BR> 如果多个entity beans
的container-managed
fields影射到数据库中同一个数据的时候,并且如果这些beans在同一个事务中被引用,他们可能会对数据的一致性造成影响。<BR> 在ejbCreate,
ejbRemove, ejbLoad, and ejbStore
方法中包含sql语句的beans中,当用deploytool分布它们的时候,你只能修改表和字段的名字,不能修改作为参数传入的数目和它们的顺序。<BR>在sql
语句中不能调用存储过程。<BR> 在Create
Table语句中,你可以更改表的字段的sql类型,以便和实际的数据类型相符。<BR>所有发生起来语句中的表名和字段的名字必须一致。<BR> 通常的sql语句只在Cloudscape,
Oracle, and Microsoft SQL
Server上做了测试,其他的数据库你应该自己测试。<BR><BR> 重复进行Result Set
时进行数据库调用<BR><BR> 对于一些数据库的驱动而言,在重复进行Result Set
时不能连接数据库。在下面的例子中,thestmt.executeUpdate 会失败。<BR></P>
<TABLE bgColor=#ffffff border=0 cellPadding=0 cellSpacing=0
width=600>
<TBODY>
<TR>
<TD>String query = "SELECT DEPTNO FROM DEPT . . .";<BR>String
update = "UPDATE EMPLOYEE . . .";<BR>ResultSet rs =
stmt.executeQuery(query);<BR>while (rs.next()) {<BR>String s =
rs.getString("DEPTNO");<BR>// The following statement will
FAIL:<BR>stmt.executeUpdate(update);<BR>. .
.<BR>}</TD></TR></TBODY></TABLE>
<P> 你可以通过以下几种方法绕开此限制:<BR><BR> 1.使用一个包含次sql的存储过程。<BR> 2.把重复的语句定义成一个子查询,例如:<BR></P>
<TABLE bgColor=#ffffff border=0 cellPadding=0 cellSpacing=0
width=600>
<TBODY>
<TR>
<TD>String update = "UPDATE EMPLOYEE<BR>SET DEPTNO
=<BR>(SELECT DEPTNO FROM DEPT<BR>WHERE LOC =
`ATLANTA’)<BR>WHERE TITLE = `ENGINEER’";</TD></TR></TBODY></TABLE>
<P> 3.把第二个sql语句放在另外一个方法中,然后调用另外一个方法,在这种情况下,必须注意另外一个的方法事RequiresNew类型的事务。同时一应该注意第二个sql语句运行在另外的事务中。这样,如果第二个事物失败的话,你应该使第一个事物回滚。</P>
<P> <B>强壮性和内存问题</B><BR><BR> 我们预期在j2ee的server运行在内存小于128m的系统中,或者deploy的j2ee应用程序数目大于16的时候,或者几千个jeb实例化的时候,系统会出现问题。如果你的内存溢出,shutdown并且重新启动j2ee
server。<BR><BR> <B>通常的分布环境<BR></B> 在这个版本中,每一个develper应该工作在自己的j2ee
sdk环境中。多个developer不能共享一个j2ee
server。<BR><BR> <B>已知的bug</B> <B>分布的bug</B><BR> 1.在寻找一个 web
resource collectin
时键入url后应该键入回车以便确认数据已经发送<BR> 2.当gui界面中的edit菜单被选中的情况:典型的情况时:树型结构看起来象是已经被选中,实际上另外一个组件被选中了。因此,edit操作会对另外一个组件进行操作。<BR> 3.对于一个有很长的内容列表的组件连说,你有可能在打包的过程中遇到命令行的参数长度的限制。避免的方法:把帮助的类加入到一个.jar库文件中,然后把这个.jar文件加入到应用程序的.ear文件中。<BR> 4.如果在一个含有ejb
.jar文件的企业bean中有jndi名字,然后一个新的bean添加到这个同样的.jar文件中。jndi的名字数据可能丢失。解决的方法:尽量在指定jndi名字之前完成ejb
.jar文件。<BR> 5.在新建一个ejb的向导的通用对话框中,类的名称有可能丢失。丢失的情况发生在你后退然后前进的动作中。<BR> 6.当你在核实的过程中新增文件的时候,有时候文件选择的状态有可能不正确。使用文件选择器选择一个目录后,你可能没有新增正确的文件。解决的方法:通过在另外一个工具的中引用这个文件,来刷新cache。例如:从file菜单,选择add
ejb jar到应用程序,click
取消,然后到核实的对话框中。<BR> 7.杂新增企业bean的响动中,如果选择了错误的类,然后你回退选择正确的项目,有时候这个选择的类的container-managed
persistence属性有可能不正确。解决的方法:或者重新启动向导,或者选择另外一种类型的bean。<BR><BR> <B>安全问题的bug</B><BR> 当用户重新定向到基于窗体的对话框页面的时候,如果没有注册(比如选择了浏览器的back),于是会被拒绝。解决的方法:从新启动浏览器。<BR></P>
<P> jsp的bug<BR> 在特定的条件下,server启动的时候加载servlets有可能失败。j2ee
server启动的时候可以加载一个servlet并且调用这个servlet的init方法。但是结果是不可预料的。这些加载的servlets包括在web.xml文件的<LOAD-ON-STARTUP元素。<BR>
<BR> <B>RMI-IIOP
Bugs</B><BR> 1.如果你的jdk安装了RMI-IIOP部分,j2ee将不能工作。解决的办法是安装一个干净的jdk。<BR> 2.j2ee的客户和server不能在基于IIOP1.0
协议的orb的产品中实现。</P>
<P> <B>其他软件的bug</B><BR><BR> 1. 在solaris平台上,如果环境变量没有包括setenv
JIT_ARGS="bco=off",j2ee jit将会引起cloudscape的失败。<BR><BR> 2. 在切换j2ee
server从non-recoverable
的模式到recoverable模式之前,要注意首先运行cleanup脚本。<BR><BR> 3.
运行j2ee,jdk是十分必要的。在一些系统中当安装jdk是时候,用户可以选择stand-alone
JRE的模式。<BR><BR> 这样的模式不能运行j2ee。另外一个问题是:如果jre的root设置成jdk的安装目录,错误有可能发生。在这种情况下,当你运行的时候一切是好的,但是deploy的时候,会有如下错误:<BR>java.rmi.RemoteException:
Error processing ejb jar:access denied:<BR>(java.io.FilePermission
e:\testjava\lib\ext read)<BR><BR> 4. 当https服务没有启动的时候,j2ee
server会打印一个错误,你可以忽略如果你不需要https。<BR><BR> 5.
在企业bean中,如果父类的参数或者返回值不是serializabl的,在父类中不要调用deserialization。要确定所有的父类是serializable。<BR><BR> 6.
web组件的server.policy
文件和j2ee要符合。这个文件给出了<BR>${com.sun.enterprise.home}/public_htm/
下的权限。应用这个文件,遵从下面的步骤:<BR>a:在lib/security/server.policy文件中,删除下面的行:<BR></P>
<TABLE bgColor=#ffffff border=0 cellPadding=0 cellSpacing=0
width=600>
<TBODY>
<TR>
<TD>
<P>grant codeBase
"file:${com.sun.enterprise.home}/public_html/-"
{<BR>permission
java.security.AllPermission;<BR>}<BR>b:替换删除的行的内容如下:<BR>grant
codeBase "file:${com.sun.enterprise.home}/public_html/-"
{<BR>permission java.lang.RuntimePermission
"loadLibrary.*";<BR>permission java.lang.RuntimePermission
"accessClassInPackage.*";</P>
<P>permission java.lang.RuntimePermission
"queuePrintJob";<BR>permission java.lang.RuntimePermission
"modifyThreadGroup";</P>
<P>permission java.io.FilePermission "<<ALL FILES>>",
"read,write";</P>
<P>permission java.net.SocketPermission "*", "connect";</P>
<P>// "standard" properies that can be read by
anyone<BR>permission java.util.PropertyPermission "*",
"read";</P>
<P>// set the JSSE provider for lazy authentication of app.
clients.<BR>permission java.security.SecurityPermission
"putProviderProperty.JSSE";<BR>permission
java.security.SecurityPermission "insertProvider.JSSE";<BR>};
</P></TD></TR></TBODY></TABLE></SPAN>
<P align=right><FONT color=red><A
href="http://www.yesky.com/20020719/1621239_1.shtml">上一页</A> <A
href="http://www.yesky.com/20020719/1621239.shtml">1</A> <A
href="http://www.yesky.com/20020719/1621239_1.shtml">2</A> 3
</FONT></P></TD></TR>
<TR>
<TD>
<DIV align=right>【责任编辑:】 <BR><A
href="http://bbs.yesky.com/servlet/IBBS2.ListTopic?forumID=94"><FONT
color=#000000>【发表评论】</FONT></A><A
href="javascript:window.close()"><FONT
color=#000000>【关闭窗口】</FONT></A></DIV></TD></TR>
<TR>
<TD>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=550>
<TBODY>
<TR>
<TD bgColor=#000000 rowSpan=5 width=1></TD>
<TD bgColor=#000000 height=1></TD>
<TD bgColor=#000000 rowSpan=5 width=1></TD></TR>
<TR>
<TD bgColor=#a0d0d0>■ 相关内容</TD></TR>
<TR>
<TD bgColor=#000000 height=1></TD></TR>
<TR>
<TD> <A
href="http://www.yesky.com/20020726/1622223.shtml"><FONT
color=#000000>用Rational Rose和UML开发J2EE应用</FONT></A><BR> <A
href="http://www.yesky.com/20020725/1622019.shtml"><FONT
color=#000000>用Rational Rose和UML开发J2EE应用(一)</FONT></A><BR> <A
href="http://www.yesky.com/20020628/1618084.shtml"><FONT
color=#000000>J2EE的安全认证机制</FONT></A><BR> <A
href="http://www.yesky.com/20020606/1614793.shtml"><FONT
color=#000000>J2EE的异步消息机制(下) </FONT></A><BR> <A
href="http://www.yesky.com/20020606/1614797.shtml"><FONT
color=#000000>J2EE的异步消息机制(上) </FONT></A><BR> <A
href="http://www.yesky.com/20020527/1613017.shtml"><FONT
color=#000000>J2EE表现层设计思考</FONT></A><BR> <A
href="http://www.yesky.com/20020514/1611111.shtml"><FONT
color=#000000>J2EE概述</FONT></A><BR></TD></TR>
<TR>
<TD bgColor=#000000 height=1></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=middle><A href="http://www.yesky.com/hdong/zz.htm"
target=_blank><FONT
color=#000000>感谢访问天极网,如果您觉得该文章涉及版权问题,请看这里!</FONT></A><BR><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE bgColor=#4e4e4e border=0 cellPadding=0 cellSpacing=0 width=760>
<TBODY>
<TR>
<TD height=3></TD></TR></TBODY></TABLE>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 width=770>
<TBODY>
<TR>
<TD><IFRAME frameBorder=0 height=20 scrolling=no
src="J2EE配置指南3.files/floor-tougao.htm"
width=770></IFRAME></TD></TR></TBODY></TABLE>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 height=40 width=770>
<TBODY>
<TR>
<TD>
<DIV align=center><SPAN class=nava><FONT color=#000000
face="Arial, Helvetica, sans-serif">Copyright (C) 2001 Yesky.com, All
Rights Reserved </FONT><FONT color=#000000><BR>版权所有 <FONT
face="Arial, Helvetica, sans-serif">Yesky </FONT><A
href="mailto:webmaster@yesky.com"></A></FONT></SPAN></DIV></TD></TR></TBODY></TABLE>
<SCRIPT language=Javascript>document.write("<img src='http://counter.yesky.com/servlet/counter.counter?CID=72342371961929728&AID=1621239&refer="+escape(document.referrer)+"&cur="+escape(document.URL)+"' border='0' alt='' width='0' height='0'>");</SCRIPT>
<BR></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?