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下,会报文件找不到的情况。将 \ 改为 / 即可。