1. Webservice增加到项目中后,部署到weblogic12c下,在启动或者部署时报错:
Caused By: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log
执行步骤:
1. 替换了原来的log4j.jar,版本号:Implementation-Version: 1.2.2,替换后版本号:log4j-1.2.17.jar,
2. 将原来的commons-logging.jar包,版本号:Implementation-Version: 1.0.3,替换成commons-logging-1.1.1.jar,成功修复
org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log
的异常
分析:
此问题应该是common-logging.jar的早期版本的问题,1.04以前都有,用1.1.1版本替换后可以解决
参考文档:
http://apache-commons.680414.n4.nabble.com/Commons-Logging-Log4JLogger-does-not-implement-Log-exception-td743106.html
二.修复上述问题后,在部署的过程中又出现了别的问题:
java.lang.LinkageError: loader constraint violation: loader (instance of weblogic/utils/classloaders/GenericClassLoader) previously initiated loading for a different type with name "org/apache/struts/action/ActionServlet"
javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation: loader (instance of weblogic/utils/classloaders/GenericClassLoader) previously initiated loading for a different type with name "org/apache/struts/action/ActionServlet"
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:379)
at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:453)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:364)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:74)
at financemanage.util.CacheFilter.doFilter(CacheFilter.java:33)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:74)
at financemanage.util.EncodingFilter.doFilter(EncodingFilter.java:63)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:74)
at financemanage.util.SessionCheckFilter.doFilter(SessionCheckFilter.java:55)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:74)
at financemanage.util.threadlocal.ThreadLocalFilter.doFilter(ThreadLocalFilter.java:30)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:74)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3288)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3254)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2163)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2089)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2074)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1513)
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of weblogic/utils/classloaders/GenericClassLoader) previously initiated loading for a different type with name "org/apache/struts/action/ActionServlet"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:343)
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:302)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
at org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:802)
at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:506)
at jsp_servlet._financemanage.__login_tran_new._jspService(__login_tran_new.java:244)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:242)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:216)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:132)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:338)
... 24 more
好嘛,一步一个坑啊。
我再找。。。。
分析:
先怀疑是web.xml中的加载顺序有问题,修改了web.xml文件中servlet的加载顺序,同时将<load-on-startup>1</load-on-startup>参数数值小的排在了前面,(注,后面分析这个应该没有很大的影响)
还是不行。。。
继续
怀疑是weblogic类加载的顺序问题导致的,修改weblogic.xml,增加项目中类库优先加载,直接增加这个加载后部署会报xml解析错误(我这发现是org.w3c.dom.Document是这个类有问题,跟weblogic的jar冲突),需要将xml-api.jar,ss_css2.jar包删掉
执行操作:
3. 修改weblogic.xml,删除xml-api.jar,ss_css2.jar
3.1 修改web.xml修改servlet的加载顺序及数字:
3.2. weblogic.xml修改内容:黄色部分为weblogic.xml修改
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD WebApplication 8.1//EN""http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<session-descriptor>
<cookie-name>CWJSESSIONID</cookie-name>
</session-descriptor>
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>
参考文档:http://blog.csdn.net/lklinkang/article/details/6605466
重新部署,部署、启动没有报错,都正常,登陆首页报错:
Compilation of JSP File '/financemanage/login_tran_new.jsp' failed:
________________________________________
login_tran_new.jsp:7:2: Type mismatch: cannot convert from Tag to JspTag
if ( request.getRequestURL().indexOf("10.0.169.165/cwb") != -1 ) {
^------------------------------------------------------------------
%>
^
login_tran_new.jsp:206:4: Type mismatch: cannot convert from FormTag to JspTag
<html:form action="/financemanage/login.do" method="post">
^-------^
login_tran_new.jsp:220:12: Type mismatch: cannot convert from ErrorsTag to JspTag
<html:errors/>
^---------^
login_tran_new.jsp:220:25: The method _releaseTags(PageContext, JspTag) in the type __login_tran_new is not applicable for the arguments (PageContext, ErrorsTag)
<html:errors/>
^
login_tran_new.jsp:220:25: Type mismatch: cannot convert from Tag to JspTag
<html:errors/>
^
login_tran_new.jsp:225:41: The method _releaseTags(PageContext, JspTag) in the type __login_tran_new is not applicable for the arguments (PageContext, FormTag)
<td height="30"><img src="<%=path%>financemanage/images/style_new/login_btn.gif" alt="" style='cursor:pointer' onclick="formsubmit()"/></td>
^--------------------------------------------------------------------------------------------------------
</html:form>
---------^
login_tran_new.jsp:225:41: Type mismatch: cannot convert from Tag to JspTag
<td height="30"><img src="<%=path%>financemanage/images/style_new/login_btn.gif" alt="" style='cursor:pointer' onclick="formsubmit()"/></td>
^--------------------------------------------------------------------------------------------------------
</html:form>
---------^
分析:是JspTag的相关类跟weblogic的发生冲突,通过eclipse工具在项目中的统计查找,没发现JspTag的类,只在servlet.jar中找到了一个JspTagException,不知道对不对,先试试吧,删之。。
执行操作:
4. 删除servlet.jar再试,
再次测试部署,启动,貌似都正常
登陆首页,OK,可以正常登陆,
直接访问webservice,(http://10.10.111.29:7001/cwService)
Ok,出来了配置信息,
至此,问题解决。
需要注意的是,删除后没有在tomcat环境下测试,只是在weblogic12c环境下测试通过
分享到:
相关推荐
将应用部署在weblogic中于axis2冲突的问题及解决方案
webservice部署tomcat简单例子, 使用jax-ws实现,下载后用tomcat部署webserviceServer,运行即可
webService部署tomcat需要的jax-ws 的完整jar包
webservice整合到自己的web项目中一同发布,只需要tomcat就可以启动服务
java webService tomcat 实例 项目 部署启动tomcat就可以访问webService 运行测试类看是否成功 jar包齐全.
CXF+Spring+Tomcat发布WebService
webservice简单例子,使用Axis1框架,包括客户端和服务端例子,部署在tomcat运行
WebAPI 和 WebService的区别
在eclipse下用tomcat服务器和axis插件创建WebService服务,doc文档
weblogic12c部署webservice错误问题WSSERVLET11: 无法解析运行时描述符: java.lang.IllegalStateException: MASM0001:
Weblogic92+CXF+XDoclet+Spring轻松搞定webservice 例子
WebService是一个新概念,它的系统架构、实现技术是现有应用的面向Internet的一个延伸。Web是为了程序到用户的交互,而Web Service是为程序到程序的交互作准备,Web Service已成为IT产业近几年来探索的热点课题之一...
webservice例子(客户端和服务器端和tomcat部署) webservice例子(客户端和服务器端和tomcat部署).zip
这个是使用JWS(又叫JAX-W)来实现 WebService的两个小例子
1:部署webservice的结果文件 2:webservice程序代码 3:部署webservice的说明文档
15.使用CXF为普通BBS应用增加WebService功能
soap-server 的发布 和soap-client的调用
详细描述了如何在tomacat6.0下发布webService,并以此为基础,进一步重点描述了如何在Weblogic10.3下发布webService。网上多半描述的是Weblogic8.1版本,而很少有关Weblogic10版本下发布webService。据本人了解,这...
WebService是一个新概念,它的系统架构、实现技术是现有应用的面向Internet的一个延伸。Web是为了程序到用户的交互,而Web Service是为程序到程序的交互作准备,Web Service已成为IT产业近几年来探索的热点课题之一...
该项目主要实现ajax/winform/webform三种方式通过WebAPI去调用WebService服务功能。简单易懂,WebService中主要包含的技术为APISoapHeader方法。初次接触这类技术的程序猿们可供参考。包括数据库脚本以及说明,很是...