前两天由于客户的需要,没办法搞了一次应用服务器的迁移,从
weblogic8.1
到
oracle AS10gR2
。中间出了一些小问题,费了一些时间,现在记于此,权作一份文档吧。
第一步:
配置
oracle application server 10
服务:
1. 将oracle-jbsp.jar包放至\JBuilderX\lib\servers目录下,重起JBuilderX;
2. 打开项目属性菜单,点击server后,选择右边的single server,选择新的服务(oracle application server 10);
3.
将新窗口右边的 Enable server选中,点击General标签,修改home directory为$ORACLE_HOME/j2ee/home
(
AS10gR2安装目录下)。
4.点击
Custom标签,在Admin password域填入安装AS10gR2时输入的密码。
5.点击ok按钮保存。
第二步:原代码修改
1。由于此次中间件的迁移后不再有weblogic,所以就要把代码中涉及到weblogic的特有的类的源程序修改为通用的代码。主要的地方就是InitialContext的初始化了,不能再使用t3了,可以简单修改如下:
InitialContext ctx = null;
ctx = new InitialContext();
如果你本身用的就是通用的初始化方法,当然也就不需要修改了。总之就是不能使其它服务特有的东西杂合进来。
2。代码规范性问题,有些jsp文件用到诸如Iterator类而没有import 包java.uitl,Oracle AS不能容错。要应用了java util包的jsp文件中使用<%@ page import=”java.util.*”%>语句。
3。中文问题:代码规范性问题,JSP代码中ContextType两次定义在Oracle AS不能容错。去掉common文件夹下header.jsp等所有被包含文件中的编码语句“<%@ page contentType="text/html; charset=GBK" %>”,增加其他所有jsp文件编码语句(如不存在编码语句),并去除包含 include/charset.inc文件的语句。
4。ejb Local接口:应用系统中会话Bean能过Local接口调用实体Bean,调用方式与应用服务器存在相关性,需要修改描述文件及代码。1) 修改描述文件,在“ejb-jar.xml”文件中增加“ejg-local-ref”描述符,可运行JBuilder添加;2)修改代码,在被调用本地接口的实体Bean的JNDI名称前增加java:com/env前缀。
第三步:部署应用程序到服务器
1. 在原项目下新建一个ear应用,编译整个项目生成.ear包。
2. 启动oracle AS 服务,打开http://hyq:1810,进入应用服务的控制台主页面。
3. 点击创建OC4J实例按钮,输入一个实例名如HYQ。点击创建按钮。创建成功后点击确定。
4. 打开新建的HYQ应用(在系统组件域内)
5. 单击管理标签后进入新的页面,点击应用程序默认值域内的数据源(D)标签进行数据源创建。
6. 在新页面中点击创建按钮,输入名称如HyqDS,数据源类输入com.evermind.sql.DriverManagerDataSource,Jdbc url中输入jdbc:oracle:thin:@//192.168.0.1:1521/hyq,jdbc驱动输入oracle.jdbc.driver.OracleDriver。输入用户名和密码(使用明文口令)。在JNDI 位置中输入HyqDS,事务处理 (XA) 位置输入:XA/HyqDS;EJB 位置输入:HyqDS。点击创建。
7. 点击OC4J: HYQ标签,返回主页面
8. 点击部署EAR文件进行部署(时间较长)。
9. 一切ok,完成!
另外注意:
1。在安装oracle AS10gR2时,如果同台电脑上已经安装的有oracle db,要确保db的所有服务全部手动关掉,否则,安装过程中就会出现服务冲突的现象,尤其是http server。
2。安装过程中,会创建一个应用实例,它的管理员用户名为:ias_admin。这是固定的,但是密码一定要记住,因为你要使用这个密码登陆控制台。
3。安装完oracle AS10gR2时会有提示,要求你记住安装后的一些信息,包括登陆首页的链接和登陆管理控制台的链接等。其中,登陆首页的端口号也就是你登陆发布应用后,链接你自己应用的端口号。