1、Struts2.3+Spring2.5.6+JPA(Hibernate3) 首先确保在tomcat7下启动运行无错误。

 

2、下载oepe-indigo-installer-12.1.1.0.1.201203120349-12.1.1-win32.exe,具体哪儿下载就不多说了。

 

3、安装oepe-indigo-installer-12.1.1.0.1.201203120349-12.1.1-win32.exe

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4、启动Myeclipse10,新增weblogic下的jdk6。(发布在weblogic下的项目,最好使用其自带的jdk6)

 

 

5、打开Myeclipse10中的weblogic 12配置项,依图设置。

 


 

6、设置WebLogic12使用的jdk6为其自带的jdk.

 

 

7、在Webloogic12目录下找到msvcr71.dll,将其复制到C:\Oracle\Middleware\jdk160_29\bin;C:\Oracle\Middleware\wlserver_12.1\bin;C:\Oracle\Middleware\wlserver_12.1\server\bin; 这三个目录下,可以解决 <Error> <Socket> <BEA-000438> <Unable to load performance pack. Using Java I/O instead. Please ensure that wlntio.dll is in:  这种错误。

 

8、最重要的一点就是,将原项目下的src\META-INF目录中的文件persistence.xml,进行改名,可以改为任何名称,建议改为jpa_persistence.xml,那么相应的beans.xml中的

<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />

也进行更改为

<property name="persistenceXmlLocation" value="classpath:META-INF/jpa_persistence.xml" />

此处修改最重要,也是核心。因为在weblogic中可能存在重名冲突,不能识别persistence这个xml。会导致提示找不到jdbc错误。此处修改,则解决这个错误。

至于原因,我是猜测,有知道的不防留言告知。谢谢。

 

9、拷贝项目正在用的antlr.jar到正在使用的jdk/jre/lib/ext/目录下。可以解决拥有Hibernate3.jar的应用被部署到weblogic11g、12g上后,抛出异常 CharScanner; panic: ClassNotFoundException: org.hibernate.hql.ast.HqlToken。原因:从网上获知,weblogic.jar中已经有了一个antlr.jar的版本,导致应用中hibernate3.jar中用到的antlr.jar不能找到,导致异常。


到此,您的项目应该能在weblogic下正常运行。

 


若weblogic是64位,则如下安装

1、先安装jrockit-jdk1.6.0_45-R28.2.7-4.1.0-windows-x64.exe。性能提高的jdk。

2、

java -jar wls1034_generic.jar  即可启动安装过程, 默认启动的是图形界面的安装向导.
//控制台安装,这个方法一般用在linux等没有安装桌面环境的服务器上,命令行方式的安装命令用如下方式启动:
java -jar wls1034_generic.jar -mode=console
//静默安装用如下方式启动:
java -jar wls1034_generic.jar -mode=console -silent_xml=/path_to_silent.xml

记录几个小问题。

<tag>
  <name>permission</name>
  <tag-class>com.xxx.taglib.PermissionTag</tag-class>
  <body-content>JSP</body-content>
  <attribute>
   <name>module</name>
   <required>true</required>
   <rtexprvalue>false</rtexprvalue>
  </attribute>
  <attribute>
   <name>privilege</name>
   <required>true</required>
   <rtexprvalue>false</rtexprvalue>
  </attribute>
 </tag>

其中jsp一定要大写。否则tomcat、weblogic下面没问题,但jboss会出错。

 


在启动Weblogic的脚本中(位于所在Domian对应服务器目录下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存为32M,最大200M


字符集问题。在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>


加载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的错误。

系统集成了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>


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


 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐