2011-04-21 60 views
2

無法從另一臺計算機(Windows 7計算機)上部署到tomcat 7(在Windows 7計算機上)我想在另一臺計算機上運行的Tomcat 7上構建和部署Struts2「教程」示例項目網絡。該項目生成良好,在本地計算機上部署良好,但在遠程計算機上部署時出現錯誤(如下所示)。使用tomcat-maven-plugin

在pom.xml文件中的設置是:

<plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>tomcat-maven-plugin</artifactId> 
      <version>1.1</version> 
      <configuration> 
       <url>http://10.0.0.220:8080/manager</url> 
        <server>myserver</server> 
      </configuration> 
     </plugin> 

其中,10.0.0.220:8080就是我嘗試部署的WAR文件的計算機的地址。

在我的本地機器在我的Maven的settings.xml的代碼是:

<server> 
     <id>myserver</id> 
     <username>travel</username> 
     <password>travel</password> 
</server> 

在我嘗試部署的計算機上使用Tomcat 7.0/conf目錄/ tomcat-users.xml文件的代碼是:

<user name = "travel" password = "travel" roles = "manager-gui,admin-gui" /> 

而且,我可以從我的網頁瀏覽器從本地計算機訪問http://10.0.0.220:8080/manager和手動部署我的WAR文件。

然而,當我在本地計算機上使用mvn tomcat:deploy,它說構建失敗

[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy 
(default-cli) on project tutorial: Cannot invoke Tomcat manager: Server returned 
HTTP response code: 403 for URL: http://10.0.0.220:8080/manager/deploy?path=%2F 
tutorial&war= -> [Help 1] 

,當我使用mvn tomcat:run我得到如下:

INFO: ... initialized Struts-Spring integration successfully 
Apr 21, 2011 3:39:22 PM org.apache.coyote.http11.Http11Protocol init 
SEVERE: Error initializing endpoint 
java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind 
     at java.net.PlainSocketImpl.socketBind(Native Method) 
     at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365) 
     at java.net.ServerSocket.bind(ServerSocket.java:319) 
     at java.net.ServerSocket.<init>(ServerSocket.java:185) 
     at java.net.ServerSocket.<init>(ServerSocket.java:141) 
     at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(De 
faultServerSocketFactory.java:50) 
     at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538) 
     at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176) 

     at org.apache.catalina.connector.Connector.initialize(Connector.java:101 
4) 
     at org.apache.catalina.startup.Embedded.start(Embedded.java:830) 
     at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMo 
jo.java:558) 
     at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java 
:255) 
     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(Default 
BuildPluginManager.java:101) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor 
.java:209) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor 
.java:153) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor 
.java:145) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje 
ct(LifecycleModuleBuilder.java:84) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje 
ct(LifecycleModuleBuilder.java:59) 
     at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBu 
ild(LifecycleStarter.java:183) 
     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lifecycl 
eStarter.java:161) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319) 
     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 
     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 
     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 
     at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. 
java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
sorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Laun 
cher.java:290) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.jav 
a:230) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(La 
uncher.java:409) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java: 
352) 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 6.330s 
[INFO] Finished at: Thu Apr 21 15:39:23 IST 2011 
[INFO] Final Memory: 5M/10M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:run (de 
fault-cli) on project tutorial: Could not start Tomcat: Protocol handler initial 
ization failed: java.net.SocketException: Unrecognized Windows Sockets error: 0: 
JVM_Bind -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit 
ch. 

什麼導致這個問題呢?我已關閉Windows防火牆和UAC設置爲「從不通知」。另外,如果我在我的本地機器(運行tomcat 5)上使用mvn tomcat:deploy,它部署的很好。

回答

8

我遇到了似乎是同樣的問題。使用Tomcat 7時,默認部署URL從http://localhost:8080/manager更改爲http://localhost:8080/manager/html

+4

其實我找到的正確url是「http:// localhost:8080/manager/text」。這適用於Tomcat 7. 也許你的網址是正確的,但我沒有測試它。 – vaibhav 2011-04-30 15:44:56

+0

@vaibhav非常好的評論。它解決了我的問題。謝謝! – artaxerxe 2012-06-19 09:34:03