设为首页 收藏本站
查看: 326|回复: 0

[经验分享] Tomcat 项目迁移至weblogic 10笔记()

[复制链接]

尚未签到

发表于 2017-2-1 08:18:40 | 显示全部楼层 |阅读模式
这几天在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控制台里面选择目录部署。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-335939-1-1.html 上篇帖子: Netty 性能测试(与Tomcat 对比) 下篇帖子: 9.Tomcat的默认连接器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表