无法从货物部署到Tomcat7

Vik*_*alk 8 maven-cargo tomcat7

我正在尝试通过https从Maven部署到远程Tomcat7.

我已经设置了manager-script角色,并且我已经成功地能够远程取消部署应用程序.

我看起来像这样:

<plugin>
    <groupId>org.codehaus.cargo</groupId>
    <artifactId>cargo-maven2-plugin</artifactId>
    <version>1.1.2</version>
    <configuration>
        <container>
            <containerId>tomcat7x</containerId>
            <type>remote</type>
        </container>

        <configuration>
            <type>runtime</type>
            <properties>
                <cargo.remote.uri>https://xxx/manager/text</cargo.remote.uri>
                <cargo.remote.username>${tomcat.username}</cargo.remote.username>
                <cargo.remote.password>${tomcat.password}</cargo.remote.password>
            </properties>
        </configuration>

        <deployer>
            <type>remote</type>
            <deployables>
                <deployable>
                    <groupId>mycomp</groupId>
                    <artifactId>myartifact</artifactId>
                    <type>war</type>
                    <properties>
                        <context>/</context>
                    </properties>
                </deployable>
            </deployables>
        </deployer>

    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

好吧,我知道凭据和一切都设置正确,我已经使用了新的/文本界面,我已经能够取消部署现有的应用程序.但是在尝试运行部署时:

mvn cargo:deployer-deploy -e
Run Code Online (Sandbox Code Playgroud)

我的根本原因是错误的:

Caused by: java.io.IOException: Error writing request body to server
at sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.checkError(HttpURLConnection.java:2809)
at sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.write(HttpURLConnection.java:2792)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
at org.codehaus.cargo.container.tomcat.internal.TomcatManager.pipe(TomcatManager.java:605)
at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:501)
at org.codehaus.cargo.container.tomcat.internal.TomcatManager.deployImpl(TomcatManager.java:569)
at org.codehaus.cargo.container.tomcat.internal.TomcatManager.deploy(TomcatManager.java:273)
at org.codehaus.cargo.container.tomcat.internal.TomcatManager.deploy(TomcatManager.java:256)
at org.codehaus.cargo.container.tomcat.internal.TomcatManager.deploy(TomcatManager.java:240)
at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.deploy(AbstractTomcatManagerDeployer.java:101)
... 25 more
Run Code Online (Sandbox Code Playgroud)

我马上得到它所以它不能超时.

文件可以变大吗?这是一场60 MB的战争.我确保我的nginx允许更大:

client_max_body_size 200M;
Run Code Online (Sandbox Code Playgroud)

我还在管理器webapps web.xml中的文本管理器中添加了multipart配置,如下所示:

servlet> Manager org.apache.catalina.manager.ManagerServlet debug 2

<multipart-config>
  <max-file-size>209715200</max-file-size>
  <max-request-size>209715200</max-request-size>
  <file-size-threshold>0</file-size-threshold>
</multipart-config>
Run Code Online (Sandbox Code Playgroud)

http://nexnet.wordpress.com/2011/04/27/large-war-file-cannot-be-deployed-in-tomcat-7/

我在很多方面都喜欢Maven,但错误报告非常糟糕.任何帮助高度赞赏.

Vik*_*alk 0

我不记得我是否或如何解决这个问题,但由于 rascio 有同样的问题,我会发布一个想法。也许需要的是 ssl 的 wagon-extension:

    <extensions>
        <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh</artifactId>
            <version>2.2</version>
        </extension>
    </extensions>
Run Code Online (Sandbox Code Playgroud)

尽管猜测。我认为在 Maven 3.0 之前你不需要它。