我創建了一個簡單的CMP,是基于數據庫中的一個表的。
創建過程和部署過程都很正常,但我在向應用服務器(WebSphere)發布時卻出現以下報錯:
[06-4-27 11:59:52:531 CST] 3e725b31 Helpers?????? W NMSV0605W: 使用名稱“
comp/PM/WebSphereCMPConnectionFactory”從上下文“java:”中查找的引用對象發送到
JNDI 命名管理器并且導致異常。引用數據如下:
引用工廠類名:com.ibm.ws.naming.util.IndirectJndiLookupObjectFactory
引用工廠類位置 URL:<null>
Reference Class Name: java.lang.Object
Type: JndiLookupInfo
Content: JndiLookupInfo: jndiName="jdbc/Default"; providerURL="";
initialContextFactory=""
異常數據如下:
javax.naming.NameNotFoundException: Context:
localhost/nodes/localhost/servers/server1, name: jdbc/Default: First
component in name Default not found.? Root exception is
org.omg.CosNaming.NamingContextPackage.NotFound:
IDL:omg.org/CosNaming/NamingContext/NotFound:1.0
?at
com.ibm.ws.naming.ipcos.WsnOptimizedNamingImpl.do_resolve_complete_info(Ws
nOptimizedNamingImpl.java:968)
?at
com.ibm.ws.naming.cosbase.WsnOptimizedNamingImplBase.resolve_complete_info
(WsnOptimizedNamingImplBase.java:1399)
?at
com.ibm.WsnOptimizedNaming._NamingContextStub.resolve_complete_info(Unknow
n Source)
?at
com.ibm.ws.naming.jndicos.CNContextImpl.cosResolve(CNContextImpl.java:3491
)
?at
com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1519)
?at
com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1480)
?at
com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(CNContextImpl.java:1187)
?at
com.ibm.ws.naming.util.IndirectJndiLookupObjectFactory$1.run(IndirectJndiL
ookupObjectFactory.java:372)
?at
com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.ja
va:111)
?at
com.ibm.ws.naming.util.IndirectJndiLookupObjectFactory.getObjectInstanceEx
t(IndirectJndiLookupObjectFactory.java:221)
?at
com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookupExt(Helpers
.java:868)
?at
com.ibm.ws.naming.urlbase.UrlContextHelper.processBoundObjectForLookup(Url
ContextHelper.java:152)
?at
com.ibm.ws.naming.java.javaURLContextRoot.processBoundObjectForLookup(java
URLContextRoot.java:398)
?at
com.ibm.ws.naming.urlbase.UrlContextImpl.lookup(UrlContextImpl.java:1278)
?at
com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:1
96)
?at
com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:1
37)
?at javax.naming.InitialContext.lookup(InitialContext.java:360)
?at
com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanClassExtensionImpl.lo
okup(Unknown Source)
?at
com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanClassExtensionImpl.ge
tConnectionFactory(Unknown Source)
?at
com.ibm.ws.ejbpersistence.beanextensions.PMModuleCookieImpl.beanInstall(Un
known Source)
?at
com.ibm.ws.ejbpersistence.beanextensions.PersistenceManagerImpl.beanInstal
l(Unknown Source)
?at
com.ibm.ejs.container.EJSContainer.loadBeanMetaData(EJSContainer.java:1367
)
?at
com.ibm.ejs.container.EJSContainer.getHomeWrapperCommon(EJSContainer.java:
1012)
?at
com.ibm.ejs.container.EJSContainer.getHomeInstance(EJSContainer.java:934)
?at
com.ibm.ejs.container.EJSContainer.startBean(EJSContainer.java:913)
?at
com.ibm.ws.runtime.component.EJBContainerImpl.startBean(EJBContainerImpl.j
ava:1301)
?at
com.ibm.ws.runtime.component.EJBContainerImpl.install(EJBContainerImpl.jav
a:1034)
?at
com.ibm.ws.runtime.component.EJBContainerImpl.start(EJBContainerImpl.java:
1508)
?at
com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.j
ava:505)
?at
com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectSta
rt(DeployedApplicationImpl.java:808)
?at
com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.j
ava:354)
?at
com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplica
tionImpl.java:578)
?at
com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(Applicati
onMgrImpl.java:299)
?at
com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.j
ava:256)
?at
com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.j
ava:536)
?at
com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
?at
com.ibm.ws.runtime.component.ApplicationServerImpl.start(ApplicationServer
Impl.java:128)
?at
com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.j
ava:536)
?at
com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
?at
com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:183)
?at com.ibm.ws.runtime.WsServer.start(WsServer.java:128)
?at com.ibm.ws.runtime.WsServer.main(WsServer.java:225)
?at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
?at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
79)
?at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm
pl.java:41)
?at java.lang.reflect.Method.invoke(Method.java:386)
?at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:105)
?at
com.ibm.etools.websphere.tools.runner.api.ServerRunnerV5$1.run(ServerRunne
rV5.java:97)
從報錯信息中看出好像是CMP的連接初始化工廠配置有問題。由于我剛上手使用Eclipse +
WebSphere(以前使用的是Jbuilder + Weblogic),但我有一個疑問:
在部署成功后發布時怎么會出現初始化工廠的問題呢?我還沒有調用這個CMP啊?只是發布到
WebSphere而已(相當于發布到Weblogic應用服務器),為什么會初始化環境工廠呢?以我的
經驗只有在發布成功后,客戶端調用CMP時才會涉及到這個問題吧!
我實在弄不明白。難道這兩個應用服務期在這一點上有區別?
另外,如果發布時進行初始化環境工廠,那我創建的SessionBean為什么就沒有這個問題,部署
發布都很正常,不知道為什么?
問題困擾我很久了。期望解決方案!