记录用weblogic12部署应用遇到的一些问题和配置,仅供参考。
一:ETS40部署weblogic12c 启动报错及访问无法加载资源文件:
1、依赖:wm-bus-service-4.2.6.27.jar
weblogic.management.DeploymentException: java.lang.ClassNotFoundException: com.hundsun.wm.service.capital.CapitalIn
2、依赖:wm-bus-support-202101-18-000.jar
com.hundsun.wm.support.open.trust.crm.support.HttpOpenAPI
3、weblogic12c版本不兼容resources,需要调整其他目录
涉及修改:application.properties文件 +升级程序+资源文件(可参考)
4、weblogic12c无法加载部分资源文件,导致页面加载异常(resources目录)
经过与weblogic厂商沟通,他们将此目录resources 设置为黑名单,目前无法通过文件配置正常访问,
临时解决方案:修改程序目录名字 改掉resources目录为其他目录。
二:weblogic12c部署API3.0注意点
1、一般使用weblogic10.3版本,该版本支持wtc和jolt两种方式连接直销。
2、如升级到weblogic12c,则只支持jolt连接直销。(直销中可以支持配置同时开放wtc和jolt 可参考文中最后温馨提示)。
同时注意,api版本不能在V202000.43.000到V202000.45.000(含)之间。或者观察如果存在以下3个jar(freemarker-2.3.15.jar ,quartz-1.6.5.jar,spring-orm-2.5.6.jar),可以先删除验证启动正常。
3、wtc或jolt配置说明
方案一:在api数据库中,可以通过系统参数"CALLSERVICEMODE"及"10225"字典项配置连接方式以及jolt连接地址(统一开关。这样所有前端都使用统一连接方式,不支持wtc jolt共存)
方案二:为了能支持多路api独立部署,在ETS3.0-SERVICE.V202000.11.000版本及以上,支持优先读取etc/EtradeConfig.properties中的配置用,如无配置,再读数据库中的配置。(同时支持wtc,jolt协议共存,即a路通过wtc调用后台,b路可以通过jolt调用后台,不冲突,如果系统有多路部署的情况,推荐此方案。)
前端系统 文件配置项参考如下(api or ets):
属性文件
#########通过配置文件开通jolt协议参数###############
CALLSERVICEMODE=Jolt
##开发环境
JOLTCHANNEL=//10.20.99.222:10007
JOLTCHECKTIME=600000
JOLTHEARTBEATTIME=600000
JOLTIDLETIMEOUT=0
JOLTPOOLSIZE=10
直销ubb开通jolt协议-参考配置
直销ubb文件开启jolt协议:
JSLGRP LMID="directserver" GRPNO=11
JREPGRP LMID="directserver" GRPNO=12
JSL SRVGRP=JSLGRP SRVID=1 RESTART=Y MAXGEN=2 CLOPT="-A -- -n //10.1.77.77:10005 -p 9990 -P 10100 -m 1"
JREPSVR SRVGRP=JREPGRP SRVID=1 RESTART=Y MAXGEN=2 GRACE=0 CLOPT="-A -- -W -P /app/hssale/bin/jrepository"
最后,如果之前系统是用wtc调用后台的,改成jolt之后,配置weblogic的时候仅仅需要配置jdbc EJB和war,无需配置wtc+导入导出配置。
三:weblogic12c部署网上交易3.0注意点
1. 修改网上交易数据库
1.修改字典项10225(可选)
SELECT T.*, T.ROWID FROM TDICTIONARY T WHERE T.L_KEYNO = '10225';
2.修改系统参数CALLSERVICEMODE(可选)
select t.*,t.rowid from tsysparameter t where t.c_item='CALLSERVICEMODE';
2. 修改启动文件
1. 将所有log4j.jar替换为log4j-1.2.14.jar
2. 设置关闭主机名验证(根据实际情况选择是否关闭)
@rem set JAVA_OPTIONS=%JAVA_DEBUG% %JAVA_OPTIONS% -Dweblogic.security.SSL.ignoreHostnameVerification=true -Dhsfund.configs=%ETS_ETC%\
3.增加jar包
etrading\WEB-INF\lib,增加此文件
weblogic-1.0.0.jar、wm-bus-service-202002-14-000-SNAPSHOT.jar
因为从12c开始网上交易用到的类别已经过期,不再存在
修改20210719
增加quartz-all.1.6.1.jar
删除NetTran.jar
4.EtradeConfig.properties配置文件里面需是EJB模式
######APP调用模式:0-EJB;1-本地。
ets.app.callmode=0
5.修改配置文件weblogic.xml
添加如下配置:
<prefer-application-packages>
<package-name>net.sf.cglib.*</package-name>
</prefer-application-packages>
#########通过配置文件开通jolt协议参数###############
CALLSERVICEMODE=Jolt
##开发环境
JOLTCHANNEL=//10.20.99.222:10007
JOLTCHECKTIME=600000
JOLTHEARTBEATTIME=600000
JOLTIDLETIMEOUT=0
JOLTPOOLSIZE=10
部署3.0更新:
今天改动点:
1.增加freemarker.jar,
2.在WEBLOGIC.xml中增加
<prefer-application-packages>
<package-name>net.sf.cglib.*</package-name>
</prefer-application-packages>
3.启动脚本的STARTMODE改为true,
2.在WEBLOGIC.xml中增加配置优先使用CGLIB这个包。否则会报如下异常;
org.springframework.beans.factory.BeanCreationException: Error creating bean with name '/integrate/login' defined in ServletContext resource [/WEB-INF/classes/config/spring/applicationContext-struts-integrate.xml]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is java.lang.RuntimeException: java.lang.ClassNotFoundException: com.hundsun.fund.fundets.common.exception.BusinessException
Caused by:
org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is java.lang.RuntimeException: java.lang.ClassNotFoundException: com.hundsun.fund.fundets.common.exception.BusinessException
Caused by:
java.lang.RuntimeException: java.lang.ClassNotFoundException: com.hundsun.fund.fundets.common.exception.BusinessException
部署前置机需注意两点
0、启动脚本中 支持jolt
1、注意当前版本需支持jolt协议
2、war里weblogic.xml 需更新为12c支持的内容(可参考)
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.3/weblogic-web-app.xsd">
<context-root>/ecs</context-root>
<session-descriptor>
<timeout-secs>3600</timeout-secs>
<cookie-name>JSESSIONID</cookie-name>
</session-descriptor>
<container-descriptor>
<prefer-application-packages>
<package-name>net.sf.cglib</package-name>
</prefer-application-packages>
</container-descriptor>
</weblogic-web-app>
3 、Unable to transform version 2.4 web application namespace to version 2.5 weblogic12c(12.1.3)部署应用报错
解决方案:修改war包里面的web.xml 为:
<web-app id="WebApp_ID" version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>Zyt App Server</display-name>
<context-param>
4、前置机启动报错:Service is not available:HSULTRA_QUERY
[2022/01/24 10:19:16,287][ERROR] 后台服务调用异常 @ com.hundsun.framework.dao.t2.channel.BalanceJoltT2Channel
bea.jolt.ServiceException: Service is not available:HSULTRA_QUERY
at bea.jolt.JoltRemoteService.init(JoltRemoteService.java:146) ~[jolt-1.0.0.jar:?]
订单前置机需开通jolt协议,注意jrepository文件不能与直销公用,文件中功能号不同。需单独从订单版本或联系开发获取。
订单开通jolt协议:
JSLGRP LMID="directserver" GRPNO=11
JREPGRP LMID="directserver" GRPNO=12
JSL SRVGRP=JSLGRP SRVID=1 RESTART=Y MAXGEN=2 CLOPT="-A -- -n //10.1.77.77:10005 -p 9990 -P 10100 -m 1"
JREPSVR SRVGRP=JREPGRP SRVID=1 RESTART=Y MAXGEN=2 GRACE=0 CLOPT="-A -- -W -P /app/hssale/bin/jrepository"
2、部署openapi
支持jolt协议,参考配置如下文件