明辉站/网站教程/内容

其他经常见JSP开发环境

网站教程2024-02-08 阅读
[摘要]包路跃··Yesky   综述:JSWDK、Tomcat由于运行所需的资源较少,以及自身的易用性,正受到越来越多的JSP学习者的青睐。  但在整个JSP世界中它们并不是一支独秀,支持JSP的服务器软件有很多,它们主要应用于商业领域,其中最重要的要属Allaire Jrun、IB...
包路跃··Yesky

  综述:JSWDK、Tomcat由于运行所需的资源较少,以及自身的易用性,正受到越来越多的JSP学习者的青睐。
  但在整个JSP世界中它们并不是一支独秀,支持JSP的服务器软件有很多,它们主要应用于商业领域,其中最重要的要属Allaire Jrun、IBM Websphere以及BEA Weblogic。
  一、Allaire Jrun

  Allaire公司的JRun是一个具有最广阔适用性的Java引擎,用于开发及实施由Java Servlets(JSP)和JavaServer Pages编写的服务器端Java应用。
  JRun是第一个完全支持JSP 1.0 规格书的商业化产品,目前共有3个版本,全球有超过80,000名开发人员使用Jrun,以在他们已有的Web服务器上添加服务器端Java的功能。其中Web服务器包括了Microsoft IIS、Netscape Enterprise Server,Apache等。 JSP是一种强大的服务器端技术,它是用于创建复杂Web应用的一整套快速应用开发系统。

  详细产品信息

  JRun是开发实施服务器端Java的先进引擎。我们可以使用Jrun来运行Java Servlets。运行Java Servlets有两种方法,扩展自己的Web 服务器或是使用内置JRun的Web服务器。通过在整个环境中将servlets作为一个可扩展的、完整定义过的Java部件模型来使用,我们就可以更加方便、快速的开发、实施复杂的应用,维护起来也更加经济。
  JRun可以使你开始开发并测试Java应用程序。它最多能接受5个并发的连接(标准版)并且:

  1.包括全部Java Servlet API
  2.支持JavaServer Pages(JSP)
  3.支持所有主要的Web servers和计算机平台
  4.JRun Pro能够在生产环境下承受大访问量的负载,帮助你实施应用、服务或Web站点(包括内联网)。JRun Pro 支持无限量并发式连接
  5.运行多个Java虚拟机,包括多个并发的Java虚拟机(JVM)。
  6.提供一个远程管理applet以及一个远程可再分布式的管理applet。
  7.JRun Pro Unlimited包括了JRun Pro的所有功能,除此以外,还可以运行无限量的、并发的JVM。

  JRun 功能介绍

  利用Java技术,你可以在现有的Web server之上添加服务器端的Java功能,JRun所支持的Web服务器包括Microsoft IIS和Personal Web Server,Netscape的Enterprise或FastTrack,Apache, O'Reilly公司的WebSite以及StarNine公司的WebSTAR。
  JRun依靠其内置的JRun Web Server可以单独运行。使用服务器端Java,用户可以开发出复杂的商业应用系统。最重要的一点是,由于servlets的平台独立性,以及更加简单的开发、更快速的实施、更经济的维护成本,使它成为CGI(Common Gateway Interface)或Perl scripts的极佳的替代产品。
  另外,JRun 2.3可以全面实施最新Java Servlet API。同时,JRun还可以利用Java Web Server中的许多先进功能。一些JRun2.3的重要功能列举如下:

  1.全面支持Java Servlet API version2.1
  2.全面支持JavaServer Pages(JSP)1.0 draft spec
  3.动态 taglets
  4.提供现成模板
  5.页面编辑
  6.dynamic-servlet重载
  7.Servlet-initialization属性
  8.Servlet 串联及过滤
  9.多个宿主(虚拟主机)支持
  10. tag支持
  11.任务跟踪
  12.安装向导
  13.复杂的Swing-based管理应用
  14.100%纯粹Java以及完全跨平台
  15.可运行于任何Java Virtual Machine
  16.最多运行于5台Java Virtual machine(JRun Pro)
  17.可运行于无限多个Java Virtual machine(JRun Pro Unlimited)
  18.远程管理(JRun Pro)

  技术优势

  Java Servlets是由Java Servlet API--Java平台的一部分,编写成的独立跨平台的服务器端程序。Java Servlets拥有"一次编写,随处运行"的强大力量,同时具备网络传递安全性以及对服务器端应用提供了良好伸缩性。Servlets可以替代传统的由Perl,C/C++或其他语言编写的服务器端应用及扩展程序。用户将Servlet作为一个可扩展的,定义良好的跨平台环境来运用,能够更加方便的开发、快速实施服务器端复杂的应用,并节省维护成本。(可以在廉价的Windows NT机器上部署servlets)
  使用现有的成熟的服务器技术,例如Web 服务器中结合servlets,当编写复杂的应用时,就可以避免特定服务器配置中平台的局限性及复杂性。使用Servlets,开发人员就不必再顾虑服务器的内部工作方式。servlets API内在的classes能够控制Form 数据,server header,cookies等所有资源。
  现有服务器端应用和servlets的最大区别就是性能。在服务器中运行一个独立的JVM,servlet一旦被呼叫即被载入。直到servlets改变时才会被再次载入。无须重新启动服务器或应用,一个被修改过的servlet就可以被自动加载。由于servlet永远驻留在内存中,它的加载速度极快。静态或永久信息可以通过多个激活的servlet 达到共享,并且允许多个用户之间共享信息。Servelet也是模块化的,它们即可以单独的完成一项特定任务,同时也可以结合在一起工作。 servlets彼此可以互相对话。

  JRun支持的Web Server :

  1.Microsoft's Internet Information Server (IIS) and Personal Web Server (PWS)
  2.Netscape's Enterprise and FastTrack Servers
  3.Apache
  4.'Reilly's WebSite Pro
  5.StarNine's WebSTAR
  6.Novell Netware 5 (Novonyx)

  二、Websphere

  WebSphere是互连网基础架构软件。它可以帮助企业实现下一代电子商务应用的开发、部署和集成,如B2B电子商务方面的应用。通过企业级事务处理,WebSphere可以从单一Web发布支持所有的商务应用。WebSphere改变了企业自身与客户、合作伙伴以及企业员工之间的关系管理方式。

  有关 Websphere 的常见问题解答

  问:如何使Web应用程序挑出不属于servlet或EJB的新类文件?
  答:在配置Web应用程序时,指定包含servlet及其非servlet Java 组件的应用程序类路径。类加载程序监视应用程序类路径,一旦检测到已经对加载的 servlet进行了更新,它就会重新加载该应用程序类路径中的所有Java组件。在WebSphere 3管理控制台中,可使用"拓扑(topology)"标签,访问您的Web应用程序,例如,default_app。在"高级 (advanced)"标签中指定类路径(可重新加载的类路径)。这些类应该物理地驻留在这里指定的路径中。

  问:在我要调用jar文件中的一个类时,为什么发生ClassNotFound异常错误?
  答:在您要调用位于jar文件中的一个类时,请确保在类路径中包括jar文件的完整路径。

  问:在WebSphere中模型和克隆的概念是什么?
  答:在您想要创建同WebSphere Application Server中部署的应用程序几乎完全相同的副本时,您可创建一个称为模型的应用程序模板。如果您部署了这些应用程序副本,这些副本则称为克隆。此技巧用于服务器的工作量管理。

  问:是否可以清除我的WebSphere服务器上的日志文件而无需停止应用程序服务器?
  答:不可以,您不能在应用程序服务器运行期间删除或编辑日志文件。如果您这样做,则应用程序服务器将停止写入日志。AIX和Solaris平台允许您编辑或删除日志文件,而不会出现任何错误消息,然而应用程序服务器将停止使用日志文件。Windows NT平台将给予您一条消息:此文件正在被另一个进程使用。清除日志的推荐方法是先停止应用程序服务器,然后删除或者重命名或移动日志并重新启动应用程序服务器。如果在应用程序服务器启动时日志文件不存在,它将创建这些日志文件。

  问:应该在何处指定仅在服务器启动时加载一次的类?
  答:当您安装此产品时,将自动设置应用程序服务器类路径。类路径的缺省设置包含所有的应用程序服务器API(AS_install_root\lib 目录中的JAR文件)。在应用程序服务器启动时,系统类加载程序将自动加载应用程序服务器类路径中的类。这些类不能重新加载。您也可以通过在应用程序服务器"常规 (general)"页上的命令行参数中指定类路径将类路径传递到应用程序服务器的JVM中。

  问:因为我的DB2用户标识和口令与在WebSphere安装期间所指定的不同,所以我的WebSphere应用程序服务器无法启动。怎样才能在不重新安装WebSphere的情况下更改用户标识和口令?
  答:您可以通过更改admin.config文件中的以下各行来更改WebSphere应用程序服务器中数据库的用户标识和口令:

  com.ibm.ejs.sm.adminServer.dbUser=db2userid
  com.ibm.ejs.sm.adminServer.dbPassword=db2password

  或者,您可以在数据库中创建另一个用户,使其用户标识和口令与WebSphere中的相同。

  问:如何保护一个HTML页(假定安全已经配置)?
  答:请执行以下步骤:
  1.创建一个企业应用程序。
  2.将权限分配给企业应用程序(各组分别具有何种访问权限)。
  3.创建一个资源,即HTML文件的URI。
  4.将资源添加到企业应用程序中。
  5.为此资源指定安全映射。

  问:在我要访问刚创建的JSP时为什么会出现错误?
  答:请确保您已正确地指定了Web应用程序路径(您在浏览器中所键入的内容)和文件系统路径(Web应用程序查找的地方)。文件系统路径是文档根目录和Web应用程序(处于高级之下)的类路径。文档根目录控制可在何处找到HTML和JSP文件。类路径控制servlet(如果可以按类名加载servlet的话)。

  问:WebSphere Connection Manager是否支持数据库存储过程?
  答:支持,WebSphere Application Server支持JDBC模型。此模型提供优化数据库访问的功能。利用数据库存储过程是其中的功能之一。WebSphere Application Server在ConnectionManager中通过提供com.ibm.db.CallableStatement 类访问存储过程而扩展了JDBC的功能。

  问:WebSphere Application Server用来存储用户概要信息的数据库表的名称是什么?
  答:此表的名称是User_Profile_Table,位于WAS数据库之中。

  问:使用WebSphere Connect Manager(数据源)访问数据库并执行一个servlet时,我为什么会得到错误SQL1046N:授权 ID 无效?
  答:有几种原因可能导致此错误发生:
  1.用户标识未授权与数据库进行连接。
  2.连接指定的用户标识未授权执行指定的功能。
  3."IBM WS AdminServer"服务"Startup - Log on as"参数被定义为"System Account"或用户没有适当权限的"This Account"。
  4.在servlet或EJB实现getConnection方法而不传递用户标识和口令时会经历此错误的结果。因为getConnection方法将使用在实现servlet或EJB例程的环境中定义的用户标识和口令。

  要解决此错误:

  1.指定授权的用户标识和口令以连接到数据库。
  2.确保或赋予该用户标识权限以执行特定的功能。
  3.如果您在将用户标识和口令传递给getConnection方法,请确保正在传递正确值,在类中定义变量,变量是通过ResourceBundle属性文件传递的,等等。
  4.如果您不是在将用户标识和口令传递给getConnection方法,请确保"IBM WS AdminServer"服务"Startup - Log on as"参数指定了一个授权用户。

  问:如何控制WebSphere所使用的端口?
  答:WebSphere管理服务器使用两个端口:引导程序端口和LSD端口。缺省情况下,引导程序端口为900,LSD端口为9000。如果您希望在UNIX上不以root用户的身份来运行WebSphere,则必需更改引导程序端口。如果您遇到一个与端口 9000 冲突的端口,则您必须更改LSD端口。编辑admin.config 文件并添加下面这些属性,可以控制各端口:com.ibm.ejs.sm.adminServer.lsdPort=9005(缺省值为 9000)com.ibm.ejs.sm.adminServer.bootstrapPort=9002(缺省值为 900)

  问:使用WebSphere Administration控制台时,如何避免使会话无效?
  答:在会话管理器(在servlet引擎中)中,单击"时间间隔 (intervals)"标签。在"无效时间"字段中输入值"-1"。这将确保不会使会话无效。

  问:WebSphere Application Server如何与Web服务器进行通信?
  答:WebSphere Application Server使用OSE (Open Servlet Engine) 与Web服务器进行通信。

  问:如何更改WebSphere的类路径?
  答:您可以通过WebSphere Application Server的属性表向其类路径进行添加。要替换类路径,请单?quot;常规 (general)"标签上的"环境 (environment)"字段,以启动属性环境编辑器。在此编辑器中,更改此类路径或其他环境变量。要添加类路径,请在"命令行参数(command line arguments)"字段中输入类路径。

  问:启动WebSphere时,为什么会得到错误:端口9000正在被使用?
  答:端口9000是管理服务器位置服务守候进程的缺省端口。许多系统资源(包括AIXX-windows管理器)也使用端口9000。如果您在AIX上执行./startupServer.sh命令时看到错误消息"端口9000正在被使用 - 选择另一个端口",这时管理服务器进程不能启动,因为端口9000正在被AIX X-windows 管理器使用。通过在管理服务器命令行指定-lsdPort选项更改位置服务守候进程监听的端口,或在admin.config文件(在Windows NT上位于目录\bin中;在UNIX上位于/bin中)中设置com.ibm.ejs.sm.adminServer.lsdPort属性。

  问:我想将WAS管理信息中心库存储在另一台机器上的Oracle数据库中。在将要安装WebSphere Application Server的机器中我需要安装什么数据库软件?
  答:您需要在将要安装WebSphere Application Server的机器上安装Oracle客户端,并将Oracle客户端配置为可与远程Oracle服务器进行通信。在WebSphere安装过程中,您在本地机器上指定Oracle客户端主目录的路径(例如,x:\Oracle\Ora8i)。

  问:将EJB部署到WebSphere容器中时,如何解决NoClassDefFound异常错误?
  答:NoClassDefFound异常错误可表明部署工具未能找到部署或配置到WebSphere中EJB的一个或多个支持类。要解决此异常错误,请将带有jar名称的完整jar文件路径添加或附加到带有应用程序服务器命令行-classpath参数的应用程序服务器类路径中。

  问:如果修改了一个servlet,是否需要重新启动WebSphere和Web服务器?
  答:不需要。您只要对其进行编译,WebSphere(2.02 版本或更高版本)将能够自动加载新的类文件。

  有关Websphere Studio的常见问题解答

  问:是否可以使用WebSphere Studio JavaBean向导从一个EJB中创建servlet、输出JSP和输入HTML?
  答: 您应该在VisualAge for Java环境中为EJB创建一个access bean。当创建 access bean时,请选择一个Java bean wrapper。现在您就可以在WebSphere Studio JavaBean向导中使用该access bean来创建servlet、输出JSP和输入 HTML。如果在您的EJB开发中没有使用VisualAge for Java环境,您就必须编写一个存取EJB的客户端JavaBean,并在WebSphere Studio中使用该JavaBean。

  问:我有一个可以运行在WebSphere测试环境中的.jsp文件,该文件为什么不能在WebSphere Application Server中运行?
  答:原因是WebSphere Application Server配置为与JSP 1.0一起运行,WebSphere Studio配置为生成0.91版本的JSP。要解决该问题,请更改在 WebSphere Studio中生成的JSP版本:右击在WebSphere Studio中您所工作的项目在属性下面,选择高级标签。在属性列表中,选择JSP,并选择版本 1.0。

  问:如何在WebSphere Studio中创建一个定制发布阶段?
  答:在工具栏中突出显示"projects",并从下拉菜单中选择"customize publishing stage"。在此窗口中输入阶段名称,并选择"Add"。

  问:当我将bean(class 或 jar)文件拖放到WebSphere Studio页面设计器中时,应该会弹出一个JSP:useBean 对话框。但每次都显示小应用程序对话框,如何显示JSP:useBean对话框?
  答:在WebSphere Studio页面设计器工具栏中选择工具,然后选择选项。在选项对话框窗口中,将"HTML element generated for a dropped Java file"从小应用程序更改为JSP:useBean。

  问:在WebSphere Studio中,如何在测试和产品服务器之间切换?
  答:在WebSphere Studio工具栏上,选择项目,然后将发布阶段突出显示。您可以选择测试服务器或产品服务器。

  问:在WebSphere Studio中如何定义发布目标?
  答:在WebSphere Studio的发布视窗中,突出显示您所要定义发布目标的服务器。右击该目标并选择属性。在属性窗口中,单击"define publishing targets"。在发布目标窗口中,可以添加、编辑或删除发布目标。

  问:在WebSphere Studio中如何启动新(空)HTML页?
  答:在WebSphere Studio中要创建新(空)HTML页,单击"选择(select)","插入(insert)","文件(file)"。当插入文件对话框出现时,选择空HTML。然后选择文件名下面的"确定(OK)"。您以后还可以对已经创建的HTML文件进行更名。

  问:在WebSphere Studio中,如何关闭 HTML 语法错误自动校正功能?
  答:在WebSphere页面设计器工具栏上选择工具,然后选择选项。在选项窗口的常规标签上,去除"correct HTML syntax errors automatically"选中状态。

  问:如何能够在VisualAge for Java 3.0和WebSphere Studio 3.0之间进行文件交换?
  答:首先必须确保VAJ和WebSphere Studio都在运行。然后执行下列操作:在VisualAge for Java环境中,找到workbench菜单栏,并单击:窗口(windows),选项(options)。在选项对话框中展开"visual composition"并选择"remote access to tool API"。在此过程中,选择推按钮,启动"remote access to tool API"。切换到WebSphere Studio workbench,选择一个项目或文件夹,该项目或文件夹将装入您从VisualAge for Java环境中复制的文件。用鼠标右键激活项目或文件夹的上下文菜单,然后选择:"插入(insert)","文件(file)"。选择"标签 (tab)","从外部数据源(from external source)"。在供应者区域,选择VisualAge for Java。要选择用于调入的Java 文件,请按浏览按钮。

  问:在WebSphere Studio中可使用哪种小组开发支持?
  答:当一个开发小组进行Web项目开发时,每个小组成员都可以在他或她的机器上安装一套WebSphere Studio。小组能够在网上使用共享库来维护该项目组件。WebSphere Studio的workbench维护每个组件的检出/检入状态并显示每个组件状态。小组也可以使用常用测试Web站点和产品发布Web站点,在发布视窗中进行维护。

  问:当要将.Java文件从WebSphere Studio中调出到VisualAge中,为什么出现错误:发送到Visualage for Java过程中出现的问题,调入错误(编译错误检测)?
  答:该问题是由于要调入项目的关闭版本引起的,要创建项目的"open edition",请执行下列操作:在VisualAge中选择项目。在下拉列表中右击并选?quot;manage"。选择"create open edition"。

  问:VisualAge for Java remote access to tool API的端口号存储在哪里?
  答:端口号存储在\ivjtools\tooldata\com-ibm-ivj-toolserver\ 目录中的toolPort.properties文件中。当服务器每次启动或关闭时,工具服务器更新该文件。

  问:哪种类型的操作可以在WebSphere Studio 3.0和VisualAge for Java 3.0工作区之间进行文件传输?
  答:下列操作就可在WebSphere Studio 3.0和VisualAge for Java 3.0工作区之间进行文件传输:

  Add from VAJ(从VAJ中添加)
  Update from VAJ(从VAJ中更新)
  Send to VAJ(发送到VAJ)
  Editing in VAJ(在VAJ中编辑)
  Consuming beans created in VAJ(使用在VAJ中创建的beans)

  问:WebSphere Studio如何确定VisualAge for Java安装的位置?
  答:在WebSphere Studio从VisualAge for Java安装后的系统注册表中检索到CurrentVersion子键后,其版本号用于查找VAJ安装目录。系统注册表子键"directory"(在 HKEY_LOCAL_MACHINE, software, IBM, VisualAge for Java, 3.0, install 中)包含VAJ安装目录信息。

  问:VisualAge for Java remote access to tool API能够支持WebSphere Studio的什么功能?
  答:如果WebSphere Studio 3.0检测到VisualAge for Java软件产品已安装,它将安装一些servlet到服务器上。WebSphere Studio利用HTTP连接这些servlet来控制WebSphere Studio和VisualAge for Java软件产品之间的文件传输。

  问:我们在局域网中的两台不同的机器中安装了WebSphere Studio 3.0,为什么不能在一台机器上打开从另一台机器上创建的项目文件?信息显示某些文件已丢失、无效或被破坏。
  答:如果您要访问一个在局域网中的机器上的项目,不要选择项目所在的映射驱动器或绝对路径(如:x:\WebSphere\Studio\projects\projectname\),而通过网络邻居选择网络路径(如:\\machinename\websphere\studio\projects\projectname\)。这样您就能够从局域网中的另一台机器上打开项目文件(.wao)。

  问:在WebSphere Studio 3.0中,可以在不检出状态下打开项目的任意文件吗?
  答:可以,文件将以只读方式打开。

  问:在Websphere Studio中,如何将所有项目文件设置为可发布文件?
  答:突出显示项目文件夹,选择编辑,然后设置为可发布。

  问:使用WebSphere Studio SQL向导在插入标签中创建一个插入语句,在值列中键入参数名,当我运行SQL时,为什么不显示参数请求?
  答:您需要使用参数按钮弹?quot;create a new parameter"面板。必须指定参数名才能在SQL语句中正确显示。

  问:如何将JSP中向导生成的字段与内容供应者提供的JSP结合起来?
  答:JavaServer Pages(JSP) 可以在WebSphere Studio页面设计器中编辑。在页面设计器中,您可以在两个JSP之间进行选择,复制并粘贴字段。可以在常规模式或HTML源代码模式下进行。

  有关Websphere Performance Pack的常见问题解答

  问:什么是IBM WebSphere performance pack高速缓存管理器?
  答:IBM WebSphere performance pack高速缓存管理器是一个能够提供效能价格合算的代理服务器,适用于中小型设备装置。它使用IBM Web Traffic Express技术为HTTP请求提供透明代理,并可在Windows NT和Linux环境中应用。

  问:运行eNetwork调度程序来实现负载均衡时,如果运行该程序的机器出现故障,将会出现什么问题?
  答:如果您正在进行负载均衡,并且运行eNetwork调度程序的机器出现故障,那么您的Web站点可能无法访问。IBM eNetwork调度程序具有高可用性特点,即可为另一台机器配置备份调度程序,以防止因运行主调度程序的机器出现故障而造成无法访问的情况。

  三、BEA WebLogic

  要学习好一套系统首先要了解它的结构,现在我们简单介绍WebLogic 的一些结构和特点。
  WebLogic的大部分配置是在weblogic.properties里完成的,只要仔细的研究这个文件就可以清楚得知关于WebLogic的一些结构和特点,下面就对weblogic.properties文件里的一些配置项作一些说明:
  weblogic.httpd.documentRoot=public_html/
  这就是WebLogic的WEB服务器的根目录,即是目录/weblogic/myserver/public_html/
weblogic.password.system=sdfjkdshfds
  这是设置管理员密码。
  weblogic.system.listenPort=7001
  这是设置 WebLogic 的WEB服务器端口。
  weblogic.httpd.servlet.classpath=/weblogic/myserver/servletclasses
  设置Servlet存放的路径。

  关于Servlet

  出于安全的目的,在WebLogic下运行的WebLogic必须在weblogic.properties里登记后才能运行,例如上文的提到Servlet http://localhost:7001/helloWorld,它在weblogic.properties里的登记项是:
  weblogic.httpd.register.helloWorld=examples.servlets.HelloWorldServlet
  实际上,这个Servlet的实际路径是
  /weblogic/myserver/servletclasses/examples/servlets/HelloWorldServlet.class
  对照一下weblogic.properties里的登记项和HelloWorldServlet.class文件的路径,应该不难找出其登记Servlet的规律吧。
  在weblogic.properties里有一下几个Servlet的登记项:

  weblogic.httpd.register.AdminEvents=admin.AdminEvents
  weblogic.httpd.register.AdminClients=admin.AdminClients weblogic.httpd.register.AdminConnections=admin.AdminConnections weblogic.httpd.register.AdminJDBC=admin.AdminJDBC
  weblogic.httpd.register.AdminLicense=admin.AdminLicense
  weblogic.httpd.register.AdminMain=admin.AdminMain
  weblogic.httpd.register.AdminProps=admin.AdminProps
  weblogic.httpd.register.AdminRealm=admin.AdminRealm
  weblogic.httpd.register.AdminThreads=admin.AdminThreads weblogic.httpd.register.AdminVersion=admin.AdminVersion

  这就是管理员管理WebLogic用的Servlet,通过URL访问http://localhost:7001 /AdminMain,在弹出的身份验证对话框中输入system和在 weblogic.password.system= 设置的密码,就可以进入WebLogic的Web管理界面进行管理。

……

相关阅读