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

今日,将我编写的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>GBK</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 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值