问题一:org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named '
springSecurityFilterChain' is defined
解决:将web.xml中
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:/applicationContext*.xml
</param-value>
</context-param>
修改成:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value> classpath*:applicationContext.xml,classpath*:applicationContext_time.xml,classpath*:applicationContext-security.xml
</param-value>
</context-param>
原因:weblogic解析web.xml时不支持通配符
问题2:ClassNotFoundException: org.hibernate.hql.ast.HqlToken
解决:将antlr-2.7.6.jar放到C:\oracle\Middleware\jrockit_160_17_R28.0.0-679\jre\lib\ext下面
原因:Weblogic默认先加载EJB-QL parser,存在重名类.将antlr-2.7.6.jar放于weblogic所用jdk的lib/ext下
可先加载antlr-2.7.6.jar
问题3:报CSRF错误
解决:将以前web.xml关于dwr的servlet配置:
<servlet>
<servlet-name >dwr</servlet-name>
<servlet-class>org.directwebremoting.spring.DwrSpringServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
修改成
<servlet>
<servlet-name >dwr</servlet-name>
<servlet-class>org.directwebremoting.spring.DwrSpringServlet</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> <load-on-startup>1</load-on-startup>
</servlet>
原因:dwr跨域访问的安全问题,weblogic加强了安全机制
问题4:因为用的struts2 convention 零配置,启动后运行报no action found error 错误,找不到action;
解决:这个问题比较麻烦:
首先要更新struts2.1.6到struts2.2.1.
另外:将struts.xml加入
<constant name="struts.convention.action.fileProtocols" value="jar,zip" />
<constant name="struts.convention.action.includeJars" value=".*?/_wl_cls_gen.*?jar(!/)?" />
最后:将src文件夹加入META-INF文件夹。里面放入任意文件,目的是让其它编译到classes文件夹下
原因:我也说不清楚,参考的网友的这篇文章: http://aaa5131421.iteye.com/blog/558463
最后,为了达到最好的性能,将以前的dbcp换成weblogic的数据源吧。
配置方法很简单:
weblogic中首先创建一个数据源例如:jndi名称为:jdbc/db301,数据源的连接池初始大小以最大数根据实际情况作出配置
然后在applicationContext.xml中加入
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/db301" />,替换以前的datasource配置
weblogic的jmrc的确是一个非常强大的东东,对于性能瓶颈分析非常好,对于它的使用,目前还是一知半解,希望有更熟悉
的童鞋能作出一些讲解;在这里,我也只是一个抛砖引玉.。