use*_*055 7 java eclipse spring weblogic12c
我可以使用oepe 12.1.1.1.1将我的web-app从Eclipse Indigo 3.7.2发布到Oracle Weblogic 12c(12.1.1)AdminServer
但是,使用oepe 12.1.2.2导入到Eclipse Kepler 4.3.1中的完全相同的web-app无法使用以下(相当完善的例程)异常发布,并且我试图找出原因?...
NameNotFoundException:尝试查找'jdbc.oraclexe'时没有找到子上下文'jdbc'.解决 ''; 剩下的名字'jdbc/oraclexe']; 链接剩余名称:'jdbc/oraclexe'
Weblogic 12c数据源肯定是可用的,我必须假设它正确配置,因为应用程序部署并运行时从Indigo发布没有任何问题.
我还假设applicationContext.xml中的映射,web.xml和weblogic.xml都是正确的,因为从Indigo发布时没有问题.映射如下......
SRC \主\ web应用\ WEB-INF \弹簧\ applicationContext.xml中
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/oraclexe" />
</bean>
Run Code Online (Sandbox Code Playgroud)
SRC \主\ web应用\ WEB-INF\web.xml中
<resource-ref>
<description>Oracle Weblogic Connection Pool (oraclexe)</description>
<res-ref-name>jdbc/oraclexe</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<mapped-name>jdbc/oraclexe</mapped-name>
</resource-ref>
Run Code Online (Sandbox Code Playgroud)
建立\ weboutput\WEB-INF\weblogic.xml中
<resource-description>
<res-ref-name>jdbc/oraclexe</res-ref-name>
<jndi-name>oraclexe</jndi-name>
</resource-description>
Run Code Online (Sandbox Code Playgroud)
我想知道weblogic.xml是否在部署期间不可用(即它没有被复制到src\main\webapp\WEB-INF文件夹)而不是jndiName/resource-ref/res之间的映射问题-ref-name自己?我已经尝试将weblogic.xml直接放在src\main\webapp\WEB-INF文件夹中,但我得到了相同的异常.
我唯一的另一个想法是Indigo oepe 12.1.1.1.1很高兴发布到Weblogic 12.1.1但Kepler oepe 12.1.2不是,我应该发布到Weblogic 12.1.2服务器?
经过一周左右的试验和错误/消除过程后,我设法解决了这个问题,并更好地理解了必要的映射.正如Elliott怀疑这是JNDI查找的问题.当它从Indigo发布到weblogic 12.1.1(我仍然不确定为什么会这样)时,它(无意中)按预期工作更加复杂.
我最初尝试解决这个问题的重点是weblogic.xml中的映射.当我发布到weblogic服务器时,我错误地认为在解析数据源时引用了它.事实证明情况并非如此,我的配置不需要weblogic.xml资源描述.
在applicationContext.xml中保持不变...
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/oraclexe" />
</bean>
Run Code Online (Sandbox Code Playgroud)
但是,java:comp/env/jdbc/oraclexe的jndiName值映射到web.xml res-ref-name值jdbc/oraclexe(而不是我错误地假设的weblogic.xml res-ref-name). ..
在web.xml中映射的名称已经修改...
<resource-ref>
<description>Oracle Weblogic console JDBC Data Source</description>
<res-ref-name>jdbc/oraclexe</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<mapped-name>oraclexe</mapped-name>
</resource-ref>
Run Code Online (Sandbox Code Playgroud)
...然后映射到Weblogic控制台JDBC数据源JNDI名称的映射名称值oraclexe.
weblogic.xml中的资源描述节点现在已完全省略,因为在此特定配置中未引用该节点.
| 归档时间: |
|
| 查看次数: |
32098 次 |
| 最近记录: |