webLogic版本:10.3.6.0
cas服务端版本:3.5.2.1
事件背景:
部署一套SSO环境,选用CAS最新版做为服务端,在开发阶段选用Tomcat6做为应用容器未出现任何问题,业务功能整合完毕后准备将CAS服务端移植到weblogic环境下,然后问题出现了。
问题列表:
在整个部署过程中,主要遇到两个问题
一:找不到log4j.xml文件
异常信息摘录如下:
- Caused By: java.io.FileNotFoundException: class path resource [log4j.xml] cannot be resolved to absolute file path because it does not reside in the file system: zip:/home/weblogic/Oracle/Middleware/user_projects/domains/yourdomain/servers/AdminServer/tmp/_WL_user/authServer2/gksqn0/war/WEB-INF/lib/_wl_cls_gen.jar!/log4j.xml
二:jsp编译失败
异常信息摘录如下:
- Caused By: javax.servlet.ServletException: weblogic.servlet.jsp.CompilationException: Failed to compile JSP /WEB-INF/view/jsp/default/ui/casLoginView.jsp
- casLoginView.jsp:1:1: The validator class: "org.apache.taglibs.standard.tlv.JstlCoreTLV" has failed with the following exception: "java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory cannot be cast to javax.xml.parsers.SAXParserFactory".
- <jsp:directive.include file="includes/top.jsp" />
- ^-----------------------------------------------^
解决方案:
问题一:
对于第一个问题的出现,网上也是说什么的都有,反正就是找不到Log4j的文件从而初始化失败。
解决方案有两种:
1:使用目录方式进行应用的部署
如果使用WAR包部署的话,会出现这种错误,换成目录的方式进行部署就没有这个问题了。
2:改变Log4j的初始化方式
如果非得使用WAR包进行部署的话,就不能使用CAS默认的Spring方式来初始化Log4j的配置文件了,可以使用Servlet的方式将Log4j的配置文件进行初始化,我的servlet代码:
然后配置到web.xml中,并设置优先加载。
- /**
- * 自定义LOG4J启动类
- * cas打成WAR包部署到weblogic上因找不到log4j.xml文件而出错
- * @author zz
- */
- public class Log4jInit extends HttpServlet {
- public void init() throws ServletException {
- String file = getInitParameter("log4j");
- System.out.println("...........log4j start");
- if(null != file) {
- Properties ps=new Properties();
- try {
- ps.load(getServletContext().getResourceAsStream(file));
- } catch (IOException e) {
- e.printStackTrace();
- }
- PropertyConfigurator.configure(ps);
- }
- }
- }
- <servlet>
- <servlet-name>log4jLoader</servlet-name>
- <servlet-class>com.zz.util.Log4jInit</servlet-class>
- <init-param>
- <param-name>log4j</param-name>
- <param-value>/WEB-INF/log4j.properties</param-value> </init-param>
- <load-on-startup>0</load-on-startup>
- </servlet>
然后将CAS默认的初始化方式进行屏蔽:修改WEB-INF/spring-configuration/log4jConfiguration.xml文件,将初始化的bean注释掉:
- <!--
- <bean id="log4jInitialization" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
- <property name="targetClass" value="org.springframework.util.Log4jConfigurer"/>
- <property name="targetMethod" value="initLogging"/>
- <property name="arguments">
- <list>
- <value>${log4j.config.location:classpath:log4j.xml}</value>
- <value>${log4j.refresh.interval:60000}</value>
- </list>
- </property>
- </bean>
- -->
问题二:
对于第二个问题,解决的时候是走了不少弯路,主要还是网上的解决方案太操蛋了。
该问题的意思是说解析jsp文件出错了,网上的解决方案基本比较统一,如:加个weblogic.xml优先加载项目JAR,删除xml-api.jar。
但经过试验发现,如果删除xml-api.jar,在启动APP的时候就会出错,提示找不到:org.w3c.dom.ElementTraversal
经过各种测试,在我的项目里,解决方案就是将项目中的xml-api.jar移到weblogic下domain的lib中,注意,是移动,而不是复制,
目录:/home/weblogic/Oracle/Middleware/user_projects/domains/yourdomain/lib。
在解决该问题时,记得时常删除缓存文件,目录:
/home/weblogic/Oracle/Middleware/user_projects/domains/yourdomain/servers/AdminServer/tmp/_WL_user/
相关推荐
"Weblogic CAS配置部署" 本文将详细介绍Weblogic下的CAS配置部署,实现单点登录。客户端配置是关键的一步,需要正确地配置证书信任库。 一、IDS采用的HTTPS(SSL)第三方系统中间件证书信任添加解决方案 在Web...
Weblogic 使用 YALE CAS 实现 SSO 单点登录的方法 一、Yale CAS 简介 Yale CAS 是耶鲁大学开发的一种开源的单点登录(SSO)解决方案,提供了一个通用的身份验证框架,允许用户使用单个身份验证来访问多个应用程序。...
1. **环境配置**:在WebLogic上部署CAS服务,需要正确配置WebLogic的服务器实例、数据源、JNDI绑定等,同时JBOSS CACHE也需要相应的配置,如集群设置、缓存模式等。 2. **兼容性问题**:JBOSS CACHE可能不是原生...
介绍weblogic下部署单点登录,生成证书,weblogic配置证书
在部署CAS Server前,需要完成以下准备工作: 1. 安装和配置Java环境,因为CAS Server是基于Java构建的。 2. 确定和配置应用服务器,如Tomcat或WebLogic,它们将承载CAS Server应用。 3. 准备数据库,如MySQL或...
4. **部署灵活性**:可在Tomcat、Weblogic、WebSphere等J2EE服务器上运行。 5. **数据库兼容性**:支持Oracle、DB2、MySQL等多种数据库。 6. **第三方组件**:整合Velocity、Hibernate、Lucene、Struts等开源项目。 ...
部署 CAS 时,只需将 `cas.war` 文件复制到 Tomcat 的 `webapps` 目录下。默认情况下,CAS 使用简单的用户名和密码验证,但在实际生产环境中,可以通过数据库或 LDAP 进行更复杂的身份验证。 为了实现 CAS 客户端与...
- **服务器节点配置**:在上述示例中,两个Weblogic服务器节点分别为`192.168.27.52:8001`和`192.168.27.49:8002`,其中`192.168.27.49:8002`部署了CASServer服务。 - **持久连接**:通过设置`KeepAliveEnabled ON`...
单点登录(Single Sign-On,SSO)是一种网络认证技术,允许用户在...附件部分提供了在不同应用服务器(如WebLogic、Tomcat)上配置和实现CAS单点登录的指南,包括使用LDAP进行用户认证的步骤,为实际部署提供了参考。
随着信息化技术的快速发展,政府、企业和各种机构在互联网或内部网(Intranet)上部署了大量的业务系统,例如在线申报系统、在线审批系统、办公自动化(OA)系统等。这些系统通常都需要实现用户管理、身份认证和权限控制...
1. 应用服务器:如Tomcat、WebLogic、JBoss等,它们提供了部署和运行Java EE应用的环境,并且通常支持SSO配置。 2. CAS服务器:可以是开源的Java CAS Server或其他认证服务器,如Keycloak、Shibboleth等。CAS服务器...
1. **WebLogic 部署场景**:讨论了在 WebLogic 应用服务器中部署 Spring Security 应用时需要注意的事项。 2. **WebSphere 部署场景**:探讨了在 WebSphere 应用服务器中部署 Spring Security 应用时的注意事项。 3....
YALECAS服务器搭建涉及到在不同的应用服务器上(如Tomcat、WebLogic、WebSphere)配置和部署CAS服务,以实现单点登录功能。在BDF框架中,这一过程需要考虑服务器环境、安全性和性能优化等多个方面。 **1.2.16 ...
- Single Sign-On (SSO):通过Yale CAS和Siteminder等提供单点登录功能。 - Hierarchical and Extensible系统:支持社区和组织的层次结构和扩展。 - Mule or ServiceMix ESB:支持企业服务总线集成。 #### 八、性能...
Java 开发工程师需要具备 Java 基础扎实,熟悉对象/内存模型,了解 JVM 垃圾回收机制,对多线程锁机制,如重量级锁,轻量级锁,CAS 等有深刻理解,了解 Java 网络 IO(BIO/NIO/AIO),熟练使用 MySQL,对 MySQL 索引...
- **与各种应用服务器兼容**:可以轻松地部署在不同的应用服务器上,如 Tomcat、Jetty、WebLogic 等。 - **第三方库支持**:支持与其他安全相关的第三方库或服务集成,如 LDAP、CAS (Central Authentication Service...
- **在现有的应用服务器中安装Liferay**: 提供了在Tomcat、WebLogic等服务器上部署Liferay的步骤。 - **10步轻松安装Liferay**: 简化版的安装指南,适用于初次接触Liferay的用户。 - **TOMCAT5.5.X**: 详细介绍如何...