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 "&lt;<ALL FILES>&gt;", 
                  "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>&nbsp;&nbsp;<A 
            href="http://www.yesky.com/20020719/1621239.shtml">1</A> <A 
            href="http://www.yesky.com/20020719/1621239_1.shtml">2</A> 3 
            &nbsp;</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 + -
显示快捷键?