[转帖]Tomcat6项目移植到weblogic11(10.3)遇到的问题,及解决办法_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
4
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 5654 | 回复: 3   主题: [转帖]Tomcat6项目移植到weblogic11(10.3)遇到的问题,及解决办法        下一篇 
white
注册用户
等级:少校
经验:1327
发帖:305
精华:0
注册:2011-7-21
状态:离线
发送短消息息给white 加好友    发送短消息息给white 发消息
发表于: IP:您无权察看 2011-7-22 10:12:38 | [全部帖] [楼主帖] 楼主

[转帖]Tomcat6项目移植到weblogic11(10.3)遇到的问题,及解决办法

出自:http://hi.baidu.com/sdgtxuyong/blog/item/91a28a13cbd137daf6039e2b.html

     今日,将我编写的S2SH DWR项目移植到weblogic11上,遇到一大堆的问题,但都被我一一解决。现将碰到的问题,汇总如下。

首先在oracle网站上下载weblogic11R1,然后安装上。注意,安装时带上eclipse插件。这个插件可以单独运行,是个集成了weblogic server配置的eclipse.运行eclipse,新建server 并配好。

建好Weblogic域后,就可以运行了,注意建域的时候,要选择开发模式。如果选择生产模式,在最后封装成自启动系统服务时,会失败。为了兼顾稳定,JDK可以选择生产模式的JDK。然后就可以用eclipse打包发布了。

1、首先碰到的是打包后不能运行的问题,解决方法如下,将打包后的文件解压,成为一个目录。然后以目录的形式在Admin Server Console中安装。就能解决这个问题。另外,如果发布后想以更改上下文根,可以在部署后,更改,如改为 / ,之后,会出现上下文 (未指定值),这样就是以网站根发布了。

2、字符集问题。在Jsp中pageEncoding选择GBK,但是content中的charset一定是utf-8。然后原有的工程的WEB-INF下建立weblogic.xml文件。文件头可以到安装目录的例子里去找。然后加上

<wls:charset-params>
<wls:input-charset>
<wls:resource-path>/*</wls:resource-path>
<wls:java-charset-name>utf-8</wls:java-charset-name>
</wls:input-charset>
</wls:charset-params>


并且将web.xml中spring的转码设为GBK

<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


如果这样,可能出现一些js文件失效的情况,可以将js文件用记事本打开,然后另存为utf-8编码,就能解决了。

3、加载HIbernate文件时,出现错误。HqlToken的错误。原因是antlr-2.7.6.jar与weblogic的自带的冲突引起的。解决办法在weblogic.xml里加入

<wls:container-descriptor>
<wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>
</wls:container-descriptor>


让weblogic优先使用工程自带的包,这个方法要加在字符集之前。

注意此处网上还有一种解决办法,即在用户自定义域环境变量里添加pre classpath.这种方法虽然以控制台启动不报错。但是制作成自启动系统服务后,仍然会出现Hibernate的错误。

4、系统集成了DWR,会在使用时报CSRF错误。需要在web.xml文件里关于dwr的配置修改为如下

<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>allowScriptTagRemoting</param-name>
<param-value>true</param-value>
</init-param>
</servlet>


变红的部分是新加上去的。这样就不会出现跨域访问安全的问题了。

5、在Tomcat下,引用另外一个jsp的时候正反斜杠是不区分的。但是到了weblogic下,会报文件找不到的情况。将 \ 改为 / 即可。

6、我单位上使用的是ISA2006,在ISA里要将以前的专门的发布网站协议去掉,然后自己新建一个普通的访问协议即可。否则会出现端口占用的情况。

7、最后是制作成自启动系统服务。在weblogic安装目录下,找到wlserver_10.3\server\bin下的installSvc.cmd文件。在"%WL_HOME%\server\bin\beasvc" -install -svcname:"beasvc %DOMAIN_NAME%_%SERVER_NAME%" -javahome:"%JAVA_HOME%" -execdir:"%USERDOMAIN_HOME%" -maxconnectretries:"%MAX_CONNECT_RETRIES%" -host:"%HOST%" -port:"%PORT%" -extrapath:"%EXTRAPATH%" -password:"%WLS_PW%" -cmdline:%CMDLINE%

之前加上

set PRODUCTION_MODE=true
set DOMAIN_NAME=base_domain
set SERVER_NAME=AdminServer
set USERDOMAIN_HOME=C:\Ora\user_projects\domains\base_domain
set WLS_PW=xxxxxx


在命令行执行后就可以了。

删除服务用uninstallSvc.cmd,在执行之前先设好

set DOMAIN_NAME=base_domain
set SERVER_NAME=AdminServer


以上就是我在移植时碰到的问题。如有其它问题,请大家一起探讨。




赞(0)    操作        顶端 
匿名用户
发表于: IP:您无权察看 2011-7-25 17:02:13 | [全部帖] [楼主帖] 2  楼

北京联动北方科技有限公司受教了


赞(0)    操作        顶端 
dream007
注册用户
等级:少校
经验:1086
发帖:53
精华:0
注册:2015-7-2
状态:离线
发送短消息息给dream007 加好友    发送短消息息给dream007 发消息
发表于: IP:您无权察看 2015-9-3 20:25:03 | [全部帖] [楼主帖] 3  楼

哎呦,不错不错,学习了!!!



赞(0)    操作        顶端 
arcona
注册用户
等级:少校
经验:1100
发帖:10
精华:0
注册:2015-6-1
状态:离线
发送短消息息给arcona 加好友    发送短消息息给arcona 发消息
发表于: IP:您无权察看 2016-7-4 7:54:29 | [全部帖] [楼主帖] 4  楼

不错,感谢分享~



赞(0)    操作        顶端 
总帖数
4
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论