首页 > 其他分享 >Tomcat 项目迁移至weblogic 10笔记

Tomcat 项目迁移至weblogic 10笔记

时间:2023-09-04 15:33:31浏览次数:50  
标签:xml 10 java Tomcat SourceFile javelin weblogic JspParser jsp


作者:fbysss
关键字:Tomcat Weblogic

OS:Windows XP

WebApp Server:Tomat5.5 WebLogic  server 10 (中文版)

IDE:Bea workshop for weblogic platform。
一.IDE注意事项

创建动态web项目,选择是否共享j2ee库,如果共享,则需要域的共享库里面包含项目所需的库,比如beeHive netUi;
不共享,则将所需的库拷贝到WEB-INF/lib目录,并自动创建相关配置文件于WEB-INF下

如果访问页面时出现如下错误:
index.jsp:2:4: 使用该 URI 无法找到标记库。可能是因为 URI 不正确或解析 .tld 文件时出错。
<%@taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%>

请删除多余的配置文件,或者重新建立一个工程,在向导第二页选择好正确的配置。

二.WebLogic基础知识

一个域可以包括多个服务器,应用程序依赖于某个服务器,通过部署-〉某应用程序-〉目标 来配置
wl_server是weblogic默认域,通过开始菜单-〉Bea products->tools->Weblogic Server来启动
要创建自己的域,则可以通过开始菜单-〉Bea products->tools->Configuration wizard来创建
登录地址:http://localhost:7001/console/login/LoginForm.jsp登录用户密码:weblogic/weblogic
1.部署war之后,测试时发生错误:
Error   503--Service   Unavailable  
From   RFC   2068   Hypertext   Transfer   Protocol   --   HTTP/1.1:
.....
解决办法:一般是在刚刚激活更改后,就进行测试,还需要将该应用程序启动,状态为“活动”之后再测试就可以了。

 

2.连接池测试时出错:

Warning! Connectivity to backend database not verified. This is either because required connection pool attribute "TestConnectionsOnReserve" has not been enabled, or an invalid value has been specified for attribute "TestTableName". Please check the server log for more details..

配置连接缓冲池,在“高级”中选中“保留时测试连接”即可。此时需要先激活更改再进行测试。否则还会报错。

3.jdbc jndi错误:
javax.naming.NameNotFoundException: Unable to resolve 'jdbc_fbysss. Resolved ''; remaining name 'jdbc_fbysss'

首先要在控制台中点击左边的控制栏中的服务->JDBC新建一个数据源,数据源名称无所谓,jndi name一定要注意,比如取名叫jdbc_fbysss,而且,jdbc源必须依赖于一个server。否则无法启动。

对于Spring项目,修改applicationContext.xml的dataSource,(Tomcat的连接池在这里就不需要了)。

<!-- 数据源缓冲池 -->  <bean id="dataSource"   class="org.springframework.jndi.JndiObjectFactoryBean">    
        <property name="jndiName" value="jdbc_fbysss"/><!--两者要一样-->
        <property name="resourceRef"> 
          <value>false</value>
        </property>   
        </bean>

4.xml校验错误

(1)hbm.xml

org.dom4j.DocumentException: unknown protocol: platform Nested exception: unknown protocol: platform
这个经检查是workshop导出时 ,hbm.xml文件生成错误。修改过来就好了

 

(2)struts-config.xml

正式部署时出现异常:
ERROR Digester        []: Parse Error at line 2 column
 15: Document root element "struts-config", must match DOCTYPE root "null".
org.xml.sax.SAXParseException: Document root element "struts-config", must match
 DOCTYPE root "null".
需要在struts-config.xml中第二行加入<!DOCTYPE   struts-config   PUBLIC   "-//Apache   Software   Foundation//DTD   Struts   Configuration   1.2//EN"   "http://struts.apache.org/dtds/struts-config_1_2.dtd">

 

5.ServletApi实现不一致情况

发现一个奇怪的现象,tomcat中,一个servlet的子类,如果没有声明init方法,会自动执行父类的init方法,而weblogic不会。
解决办法是显式声明init,super.init();

6.莫名其妙空指针错误

完整错误信息:
java.io.FileNotFoundException: F:/bea/wlserver_10.0/samples/domains/workshop/servers/cgServer/tmp/_WL_user/prj_fbysss/mlh5uz/war (拒绝访问。)
        at java.io.FileInputStream.open(Ljava.lang.String;)V(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at workshop.util.filesystem.file.WlFileSystem.getInputStream(WlFileSyste
m.java:148)
        at workshop.util.filesystem.FS.getInputStream(FS.java:262)
        at javelin.jsp.JspParser.readStaticInclude(JspParser.java:3261)
        at javelin.jsp.JspParser.parseStaticInclude(JspParser.java:3198)
        at javelin.jsp.JspParser.processImplicitIncludes(JspParser.java:3289)
        at javelin.jsp.JspParser.jspParse(JspParser.java:703)
        at javelin.jsp.JspParser._parse(JspParser.java:504)
        at javelin.jsp.JspParser.parse(JspParser.java:497)
        at javelin.jsp.JspAnalyzer.parseFile(JspAnalyzer.java:113)
        at javelin.jsp.JspAnalyzer.parse(JspAnalyzer.java:101)
        at javelin.ProxySourceFile.parse(ProxySourceFile.java:117)
        at javelin.SourceFile.getAst(SourceFile.java:542)
        at javelin.SourceFile.getAst(SourceFile.java:516)
        at javelin.ProxySourceFile.codeGen(ProxySourceFile.java:215)
        at javelin.SourceFile.codeGen(SourceFile.java:310)
        at javelin.client.ClientUtilsImpl$CodeGenJob.run(ClientUtilsImpl.java:11
05)
        at javelin.client.Job.performJob(Job.java:81)
        at javelin.client.ThreadPool$WorkerThread.run(ThreadPool.java:215)
<2008-8-23 下午07时15分11秒 CST> <Error> <HTTP> <BEA-101017> <[weblogic.servlet.
internal.WebAppServletContext@36b25e - appName: prj_fbysss, name: 'prj_fbysss', context-path: '/prj_fbysss] Root cause of ServletException.
java.lang.NullPointerException
        at javelin.jsp.JspAnalyzer.parse(JspAnalyzer.java:104)
        at javelin.ProxySourceFile.parse(ProxySourceFile.java:117)
        at javelin.SourceFile.getAst(SourceFile.java:542)
        at javelin.SourceFile.getAst(SourceFile.java:516)
        at javelin.ProxySourceFile.codeGen(ProxySourceFile.java:215)
        Truncated. see log file for complete stacktrace
>

最后发现是web.xml中<include-coda/>一句不对,去掉就好了,很怪异。

<taglib>
  <taglib-uri>http://www.sss.com/select</taglib-uri>
  <taglib-location>/WEB-INF/tlds/select.tld</taglib-location> 
     </taglib>
  <taglib>
  <taglib-uri>http://www.sss.com/tree</taglib-uri>
  <taglib-location>/WEB-INF/tlds/tree.tld</taglib-location> 
     </taglib>     
  <!--web 项目配置-->
  <jsp-property-group>
   <description>
    WEB项目配置
   </description>
   <display-name>JSPConfiguration</display-name>
   <url-pattern>*.jsp</url-pattern>
   <el-ignored>false</el-ignored>
   <page-encoding>gbk</page-encoding>
   <scripting-invalid>false</scripting-invalid>
   <!--这句居然引起webloic错误!!!! include-coda/-->
  </jsp-property-group>
 </jsp-config>

 

 

7.类冲突问题
(1)JSTL解析失败

index.jsp:1:1: validator 类 "org.apache.taglibs.standard.tlv.JstlCoreTLV" 失败,出现如下异常: "java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory"。
<%@page contentType="text/html;charset=gbk" language="java"%>

项目属性-〉项目构面中的设置将记录在.setting/org.eclipse.wst.common.project.facet.core.xml文件中。
最后是把prefer-web-inf-classes设置为false就可以了。

(2)HQL语句执行失败

org.springframework.orm.hibernate3.HibernateQueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
这种情况是包版本冲突,必须设置prefer-web-inf-classes设置为true。

这样一来,有的包需要true,有的需要false,怎么办?Weblogic的确够恶心的。JSTL的包都已经放webapp下了,设置prefer-web-inf-classes设置为ture还不行,只好采取以下稍显麻烦的方法:

在workshop开发环境下,启动的服务器目录是
F:/bea/wlserver_10.0/samples/domains/workshop/bin
修改启动脚本startWebLogic.cmd
找到set CLASSPATH=%SAVE_CLASSPATH%,在后面加入
@REM sss added
set PRE_CLASSPATH=%WL_HOME%/server/lib/antlr-2.7.6rc1.jar;
set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%

其中,antlr-2.7.6rc1.jar包需要拷贝到F:/bea/wlserver_10.0/server/lib下。
正式发布的时候,需要修改对应域目录下的启动脚本
比如f:/bea/user_projects/domains/fbysssDomain/bin/startWebLogic.cmd

 

8.部署问题
部署时出现如下错误:
<2008-8-23 下午07时37分42秒 CST> <Warning> <Deployer> <BEA-149124> <Failures were detected while initiating redeploy task for application 'prj_fbysss'. Error is: '
[Deployer:149163]The domain edit lock is owned by another session in non-exclusi
ve mode - this deployment operation requires exclusive access to the edit lock a
nd hence cannot proceed.'>
解决:进入http://localhost:7001/console,释放配置,再次部署即可。

 

注:更新war:必须在删除该应用,并激活更改之后才能覆盖。
但是用war方式,获取资源路径的方法和tomcat不同,存在臭名昭著的getRealPath等问题,移植困难,所以用目录方式部署比较好。

具体方法:先把war解压,然后在weblogic控制台里面选择目录部署。

标签:xml,10,java,Tomcat,SourceFile,javelin,weblogic,JspParser,jsp
From: https://blog.51cto.com/u_16245757/7351223

相关文章

  • LntonMedia点播H.265格式的MTS文件,视频前10秒无法播放该如何解决?
    LntonMedia视频直播点播平台是一款集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体的平台。该平台可以提供音视频采集、视频推拉流、播放H.265编码视频、存储和分发功能,适用于各种终端和平台。LntonMedia在点播视频方面具备以下能力:支持用户上传视频文件并进行点......
  • win10系统关机选项中没有“休眠”怎么办?
    From: https://baijiahao.baidu.com/s?id=1758142001153511705&wfr=spider&for=pc在Win10系统下,我们可能会使用到休眠模式,但是在电源选项中发现没有休眠模式,只有睡眠模式、关机与重启的选项。那么Win10系统中电源选项没有休眠选项怎么办?下面IT百科分享一下Win10系统没有休眠模......
  • ZLMeidaKit在Windows上启动时:计算机中丢失MSVCR110.dll,以及rtmp推流后无法转换为flv
    场景ZLMediaKit在Windows上实现Rtmp流媒体服务器以及模拟rtmp推流和http-flv拉流播放:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130221608按照以上教程启动MediaServer.exe时提示:无法启动此程序,因为计算机中缺失MSVCR110.dll,尝试重新安装程序以解决此问题......
  • 点了下详情系统,CPU 100%。。。
    作者:玛奇玛链接:https://juejin.cn/post/7233307834456129593又是一个百无聊赖的早晨,我在快乐地摸鱼,工作群响了:离线系统登录不上了。我第一反应是不科学啊,系统已经很久改动过了...赶紧上生产环境看看,CPU高达1200%。接着又是熟练地敲出那几行排查CPU过高的命令:top-H-ppid......
  • Tenable Nessus 10.6.0 (Unix, Linux, Windows) - #1 漏洞评估解决方案
    TenableNessus10.6.0(Unix,Linux,Windows)-#1漏洞评估解决方案发布Nessus试用版自动化安装程序,支持macOSVentura、RHEL9和Ubuntu22.04请访问原文链接:https://sysin.org/blog/nessus-10/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgNessus漏洞评......
  • 软件工程能力---开展开发者测试需要考虑的10个问题
    开发者测试的定义:开发者测试(DT),是指开发者所做的测试,有别于专职测试人员进行的测试活动。DT目标是在软件交付转验收测试前,发现和解决绝大多数代码缺陷,而其理论依据是业界研究反复揭示的“前端发现问题的代价远小于后端”。 本文先不讨论开发者测试的优势(作用),也不展开讨......
  • 3、运算精度的选择(P106)
    1、fp16和fp32有什么区别?FP32(单精度浮点数)和FP16(半精度浮点数)是两种不同的浮点数表示方式,它们在精度和存储空间上有显著的区别。下面是它们的主要区别以及一个示例来说明这些区别:精度:FP32:单精度浮点数使用32位来表示一个数,其中包括1位符号位、8位指数位和23位尾数位。它具有......
  • 高速接口_(10Gbps )万兆网络中物理编码层 64B66B 编码解码实现
    万兆网络中物理编码层64B66B编码解码实现目的万兆以太网的物理编码层(PCS)的编码和解码工作原理和实现方法使用赛灵思官方提供的GTWizardIP来配置和控制高速接口的参数和功能实现自定义的64B66B编码器和解码器,并进行了测试和验证使用自定义的数据或标准的以太网数据来......
  • 如何将bat批处理文件固定到Win10的开始菜单磁贴中
    要将一个批处理文件(.bat)放到Windows10的磁贴中,可以通过以下步骤来实现:创建一个快捷方式:找到你的.bat文件所在的位置,通常是在文件资源管理器中。右键单击.bat文件,然后选择“创建快捷方式”。将快捷方式移动到开始菜单:使用文件资源管理器导航到以下位置(你也可......
  • 【牛客周赛 Round 10】A-D题解
    Ahttps://ac.nowcoder.com/acm/contest/64272/A题意游游定义一个数组为“稳定的”,当且仅当数组相邻的两个元素之差的绝对值不超过1。例如[2,3,2,2,1]是稳定的,而[1,3,2]则不是稳定的。游游拿到了一个数组,她想求出该数组的最长的“稳定的”连续子数组的长度。题解首先,如果在某......