本地运行正常,部署到服务器weblogic启动时报错,本地的weblogic版本和服务器不同
java.util.InvalidPropertiesFormatException: org.xml.sax.SAXParseException: Invalid encoding name "GB18030".
at java.util.XMLUtils.load(XMLUtils.java:74)
at java.util.Properties.loadFromXML(Properties.java:741)
at com.tydic.sso.client.utils.SysProperties.init(SysProperties.java:33)
at com.tydic.sso.client.servlet.InitServlet.init(InitServlet.java:70)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:278)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:507)
。。。。
同事以前遇到过这样的问题,如下方法解决了:
在domain域下建一个文件夹如extra-libs,并放入xercesImpl-2.6.2.jar包
然后修改startWebLogic.sh
在classpath前加上该包路径
CLASSPATH="${CLASSPATH}${CLASSPATHSEP}${MEDREC_WEBLOGIC_CLASSPATH}"
改为
CLASSPATH="/weblogic/user_projects/domains/my_domain/extra-libs/xercesImpl-2.6.2.jar:${CLASSPATH}${CLASSPATHSEP}${MEDREC_WEBL
OGIC_CLASSPATH}"
重启weblogic不报错
但是我在做了如上步骤后仍然报错,后来调查发现是因为在WEB-INF下放置了weblogic.xml文件
内容为
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>
将该文件删除后,启动weblogic不报错啦!