weblogic常见错误积累

关键字:weblogic常见错误积累


1、配置weblogic时指定jdk版本问题
javax.xml.stream.FactoryConfigurationError: Provider javax.xml.stream.XMLInputFactory could not be instantiated: java.lang.InstantiationException
at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:158)
at weblogic.application.descriptor.BasicMunger2.<clinit>(BasicMunger2.java:76)
at weblogic.application.ApplicationDescriptor$MyApplicationDescriptor.createXMLStreamReader(ApplicationDescriptor.java:438)
at weblogic.application.descriptor.AbstractDescriptorLoader2.createDescriptorBean(AbstractDescriptorLoader2.java:369)
at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBeanWithoutPlan(AbstractDescriptorLoader2.java:720)
Truncated. see log file for complete stacktrace
>

此问题已经解决,原来是在myeclipse中jdk版本的问题,我安装的是jdk1.6,而weblogic的默认版本是1.5.06,又长了一志。但是在每次配置域的时候选择其它jdk版本,选择的版本比weblogic的默认版本要高,报错,这可能是版本问题,但又郁闷,既然可以选择其它jdk,选了又不能运行,又何必呢,笑死人了bea



2、部署web项目到weblogic中,启动weblogic出现异常:

<2011-9-7 上午06时05分24秒 GMT> <Error> <J2EE> <BEA-160197> <Unable to load descriptor D:\bea\user_projects\domains\base_domain\.\autodeploy\dataSwitching/WEB-INF/web.xml of module dataSwitching. The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:147)
at weblogic.descriptor.DescriptorManager.createDescriptor(DescriptorManager.java:280)
at weblogic.descriptor.DescriptorManager.createDescriptor(DescriptorManager.java:248)
at weblogic.application.descriptor.AbstractDescriptorLoader2.getDescriptorBeanFromReader(AbstractDescriptorLoader2.java:749)

......原来是web.xml中web-app版本的原因,改回2.4即可



tomcat向weblogic迁移注意事项!
3、运行环境为: 中文WindowsXP SP2, Tomcat5.5, Weblogic9.2, JDK1.5


4、启动weblogic报错  已加锁 的解决办法

/base_domain/servers/AdminServer/data/store/diagnostics/WLS_DIAGNOSTICS000000.DAT文件  再启动weblogic一般就可以了



★ 连接池配置问题
spring的datasource在tomcat里配置为:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/dsName</value>
</property>
</bean>

在weblogic里需要配置为
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>dsName</value>
</property>
</bean>



润乾报表的reportDefine在tomcat下配置为:
<config>
<name>JNDIPrefix</name>
<value>java:comp/env</value>
</config>
<config>
<name>dataSource</name>
<value>dsName,oracle</value>
</config>

在weblogic里修改为:
<config>
<name>JNDIPrefix</name>
<value></value>
</config>


则weblogic里jndi连接池的jndi资源名称应该配置为:
dsName
并且必须指定target server , 如: exmple server



★ getServletContext()
改为
getServletConfig().getServletContext()


★ NullPointerException in initSessionInfo()
仅在IE出现, 在FF里没有问题, 需要以下2步才能撤掉消除这个问题
1. 设置Server, Protocols页面里的HTTP, 去掉Enable Keepalives的复选框
2. 在WEB-INF目录下新建一个 weblogic.xml 文件, 内容如下:



<?xml version="1.0" encoding="GBK"?><weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90">  <session-descriptor>    <cookie-name>jsessionid1</cookie-name>  </session-descriptor></weblogic-web-app>
★ 围绕字符集的问题汇总

web.xml
问题描述:
文件本身是UTF-8格式时, Tomcat能够解析, Weblogic启动失败, 提示: VALIDATION PROBLEMS WERE FOUND

解决方法:
用window的记事本打开web.xml,另存为ANSI格式( 由于当前是中文操作系统, 所以实际编码为GBK )
同时修改第一行字符集信息: <?xml version="1.0" encoding="UTF-8"?>
由UTF-8改为GBK, 否则Weblogic还是解析失败.


比较奇怪的是UltraEdit竟然也能识别encoding设置,如果文件是ANSI格式,而encoding设置为UTF-8,则中文显示为乱码! 设成GBK就好了

提示: Eclipse里所有xml格式默认为UTF-8, 并且不支持encoding设置, 所以打开GBK的web.xml还是乱码
所以Weblogic不支持web.xml为UTF-8格式是个缺陷?

这个问题也许与web.xml的version="2.4"有关? 可以把相关的配置改成Servlet2.3的格式试试(待测试)
总之用Weblogic有小麻烦


jsp, include, 与 pageEncoding
问题描述:
在main.jsp中include另外一个part.jsp页面, 这些文件都是UTF-8格式的,
并且设置 <%@ page contentType="text/html;charset=UTF-8" %> ,则pageEncoding应该默认与contentType里的charset相同, 为UTF-8

如果被include的part.jsp的文件格式是UTF-8的, 则不管是哪种include方式, 都会导致最终输出的页面里多出"FF FE"字节,
这些不能显示的字符后面如果是<div> <table> 等html的块元素, 会导致IE等浏览器先换行处理, 再显示<div> <table>
最终的效果就是页面多出一些奇怪的空行.

2个问题在Tomcat和Weblogic里都有.

解决方法:
把被include的part.jsp文件改为GBK格式的(用记事本打开,另存为,指定ANSI即可)
但是这样会引起中文乱码的问题, 需要设置 part.jsp 的 pageEncoding="GBK" 才行!


设置pageEncoding又会引起下面的问题:
main.jsp和part.jsp在Weblogic里, 有些情况(还不太明确)不能同时配置 pageEncoding


解决方法:
只在被include的part.jsp里配置pageEncoding="GBK"

遗留问题:
在Weblogic里, 只需要设置被include的jsp页面为ANSI, 并且设置 pageEncoding 即可解决问题.

但是Tomcat里, 如果JSP都是UTF-8格式, 不用设置pageEncoding, 大部分页面没有问题, 只是某些页面有问题.
但是这些有问题的页面必须都设置为GBK才能解决, 包括main.jsp, part.jsp, 如果用了struts tiles,则tiles相关的文件也要设置成GBK!
由于在Weblogic下不能同时配置pageEncoding, 所以看项目情况, 可以放弃Tomcat下的显示效果.


部署weblogic的问题,主要在数据库连接上,和一些中文乱码问题。























你可能感兴趣的:(weblogic)