2013-02-26 98 views
1

我想部署一個EAR文件。我是weblogic的新手。我正在使用oracle企業包進行eclipse。我有一個正在運行的weblogic服務器。我創建了一個企業應用程序項目 我的application.xml是:什麼導致java.net.MalformedURLException:無協議:何時試圖在weblogic中部署.ear?

<?xml version="1.0" encoding="ASCII"?> 
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" version="5"> 
    <display-name>My App</display-name> 
<module> 
<ejb>appEJB.jar</ejb> 
</module> 
<module> 
<web> 
    <web-uri>app.war</web-uri> 
    <context-root>app</context-root> 
</web> 
</module> 
</application> 

我的weblogic-application.xml中是:

<?xml version="1.0" encoding="UTF-8"?> 
<wls:weblogic-application xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic- application" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/javaee_5.xsd http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.1/weblogic-application.xsd"> 
<!--weblogic-version:10.3.3--> 
<wls:application-param> 
    <wls:param-name>webapp.encoding.default</wls:param-name> 
    <wls:param-value>UTF-8</wls:param-value> 
</wls:application-param> 
</wls:weblogic-application> 

我得到一個名爲 'EARNAME' 錯誤模塊無法部署。請參閱錯誤日誌。 錯誤日誌有這個堆棧跟蹤:

java.lang.Exception: Exception received from deployment driver. See Error Log view for more detail. 
at oracle.eclipse.tools.weblogic.server.internal.DeploymentProgressListener.watch(DeploymentProgressListener.java:190) 
at oracle.eclipse.tools.weblogic.server.internal.WlsJ2EEDeploymentHelper.deploy(WlsJ2EEDeploymentHelper.java:506) 
at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishWeblogicModules(WeblogicServerBehaviour.java:1466) 
at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishToServer(WeblogicServerBehaviour.java:898) 
at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishOnce(WeblogicServerBehaviour.java:686) 
at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publish(WeblogicServerBehaviour.java:539) 
at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:774) 
at org.eclipse.wst.server.core.internal.Server.publishImpl(Server.java:3108) 
at org.eclipse.wst.server.core.internal.Server$PublishJob.run(Server.java:345) 
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) 
Caused by: java.net.MalformedURLException: no protocol: Files/OracleWebLogic/Middleware/wlserver_10.3/server/lib/../../../modules/features/weblogic.server.modules_10.3.3.0.jar 
at java.net.URL.<init>(URL.java:567) 
at java.net.URL.<init>(URL.java:464) 
at java.net.URL.<init>(URL.java:413) 
at sun.rmi.server.LoaderHandler.pathToURLs(LoaderHandler.java:751) 
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:147) 
at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620) 
at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247) 
at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197) 
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575) 
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) 
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732) 
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) 
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667) 
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) 
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) 
at java.rmi.MarshalledObject.get(MarshalledObject.java:142) 
at javax.management.remote.rmi.RMIConnectionImpl$6.run(RMIConnectionImpl.java:1513) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.management.remote.rmi.RMIConnectionImpl.unwrap(RMIConnectionImpl.java:1505) 
at javax.management.remote.rmi.RMIConnectionImpl.access$500(RMIConnectionImpl.java:72) 
at javax.management.remote.rmi.RMIConnectionImpl$7.run(RMIConnectionImpl.java:1548) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.management.remote.rmi.RMIConnectionImpl.unwrap(RMIConnectionImpl.java:1544) 
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:771) 
at javax.management.remote.rmi.RMIConnectionImpl_WLSkel.invoke(Unknown Source) 
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589) 
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477) 
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363) 
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147) 
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473) 
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118) 
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) 
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) 

可能是什麼這個failur部署的原因是什麼?我知道服務器正在運行,並且當我成功訪問localhost上的gui時:7001/console

我將.ear文件導出到autodeploy文件夾。還要在其中放置一個模塊(.jar)。

新的異常:

java.lang.Exception: Exception received from deployment driver. See Error Log view for more detail. 
at oracle.eclipse.tools.weblogic.server.internal.DeploymentProgressListener.watch(DeploymentProgressListener.java:190) 
at oracle.eclipse.tools.weblogic.server.internal.WlsJ2EEDeploymentHelper.deploy(WlsJ2EEDeploymentHelper.java:506) 
at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishWeblogicModules(WeblogicServerBehaviour.java:1466) 
at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishToServer(WeblogicServerBehaviour.java:898) 
at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishOnce(WeblogicServerBehaviour.java:686) 
at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publish(WeblogicServerBehaviour.java:539) 
at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:774) 
at org.eclipse.wst.server.core.internal.Server.publishImpl(Server.java:3108) 
at org.eclipse.wst.server.core.internal.Server$PublishJob.run(Server.java:345) 
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 

Caused by: weblogic.application.ModuleException: 
at weblogic.ejb.container.deployer.EJBModule.init(EJBModule.java:332) 
at weblogic.application.internal.flow.ModuleListenerInvoker.init(ModuleListenerInvoker.java:167) 
at weblogic.application.internal.flow.InitModulesFlow.initModule(InitModulesFlow.java:285) 
at weblogic.application.internal.flow.InitModulesFlow.initModules(InitModulesFlow.java:298) 
at weblogic.application.internal.flow.InitModulesFlow.prepare(InitModulesFlow.java:330) 
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:1221) 
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41) 
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:367) 
at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:58) 
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154) 
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60) 
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:207) 
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:98) 
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217) 
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747) 
at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216) 
at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250) 
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159) 
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171) 
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13) 
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46) 
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528) 
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) 
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) 
Caused by: java.io.FileNotFoundException: Unable to find ejb-jar with uri appEJB.jar in ear at C:\Users\Jonathan.Rosenski\workspace\.metadata\.plugins\org.eclipse.core.resources\.projects\EAR\beadep\base_domain\EAR\split_src 

at weblogic.ejb.spi.EJBJar.<init>(EJBJar.java:81) 
at weblogic.ejb.container.deployer.EJBModule.buildClassFinder(EJBModule.java:199) 
at weblogic.ejb.container.deployer.EJBModule.init(EJBModule.java:311) 

回答

4

這看起來像所引起的一個目錄名稱空間的問題。望着錯誤消息:

Caused by: java.net.MalformedURLException: 
    no protocol: 
Files/OracleWebLogic/Middleware/wlserver_10.3/server/lib/../../../modules/features/weblogic.server.modules_10.3.3.0.jar 

看來,jar文件是由URL引用爲 「文件:// C:/ Program Files文件/ OracleWebLogic ...」 和空間 「程序文件」 被導致異常。

你可以嘗試移動你的安裝到不同的目錄,如c:/ OracleWebLogic?

+0

我會嘗試並讓你知道。謝謝 – jon 2013-02-26 21:44:34

+0

@jon任何運氣?它能爲您提供幫助嗎? – EJK 2013-02-27 06:51:25

+0

我卸載並重新安裝到目錄在c:/ Oracle但我的Eclipse OEPE未正確卸載我認爲和服務器主頁仍指向舊的目錄c:/ Program Files ...所以我正在解決此問題。你知道在哪裏設置服務器回家的Eclipse? – jon 2013-02-27 14:07:52

1

這可能有助於某人。

刪除所有的 「WLS:」 從的weblogic.xml(在你的情況下,它是的weblogic-application.xml中)&希望它應該運行正常。

至少它對我有用。

0

繼EJK上面的正確答案之後,我想添加以下解決方法,以獲得類似錯誤的任何人。

解決這個問題的方法是在路徑名repace所有空間%20,並且是該Java細微差別的結果:MaformedURLException Bug

對我來說,當試圖指定java虛擬機參數時出現了這個問題 - 更具體地說,當試圖爲我的註冊表指定一個代碼庫時,它的路徑包含空格。

rmiregistry -J-Djava.rmi.server.codebase="file:/Users/matt/Path With Spaces/" 

由於路徑實際上作爲一個URL處理,正確的路徑應該是:

rmiregistry -J-Djava.rmi.server.codebase="file:/Users/matt/Path%20With%20Spaces/" 

爲了完整起見,我想指出的是,這個錯誤並不會被拋出時, rmir​​egistry運行,但是當您嘗試運行連接到註冊表的程序時。

相關問題