使用Maven部署应用到TongWeb(东方通应用服务器)
TongWeb是东方通(TongTech)开发的一款国产Java应用服务器,与Tomcat类似但提供了更多企业级功能。以下是使用Maven将项目部署到TongWeb服务器的方法:
1. 使用TongWeb Maven插件 (推荐方式)
东方通提供了官方的Maven插件,这是最直接的部署方式。
基本配置
<build>
<plugins>
<plugin>
<groupId>com.tongtech</groupId>
<artifactId>tongweb-maven-plugin</artifactId>
<version>7.0.0</version> <!-- 根据TongWeb版本调整 -->
<configuration>
<url>http://localhost:9060/manager/text</url>
<username>admin</username>
<password>tongweb</password>
<path>/${project.build.finalName}</path>
<update>true</update>
<charset>UTF-8</charset>
</configuration>
</plugin>
</plugins>
</build>
在settings.xml中安全配置凭证
<servers>
<server>
<id>tongweb-server</id>
<username>admin</username>
<password>{DES}加密后的密码</password>
</server>
</servers>
常用命令
- 部署应用:
mvn tongweb:deploy
- 重新部署:
mvn tongweb:redeploy
- 取消部署:
mvn tongweb:undeploy
- 启动应用:
mvn tongweb:start
- 停止应用:
mvn tongweb:stop
2. 使用Cargo插件通用部署
如果官方插件不可用,可以使用Cargo进行通用部署:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.9.11</version>
<configuration>
<container>
<containerId>tongweb7x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.uri>http://localhost:9060/manager/text</cargo.remote.uri>
<cargo.remote.username>admin</cargo.remote.username>
<cargo.remote.password>tongweb</cargo.remote.password>
<cargo.tongweb.manager.context>manager</cargo.tongweb.manager.context>
</properties>
</configuration>
<deployables>
<deployable>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<type>war</type>
<properties>
<context>/${project.build.finalName}</context>
</properties>
</deployable>
</deployables>
</configuration>
</plugin>
3. 使用Ant任务通过Maven部署
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.1.0</version>
<dependencies>
<dependency>
<groupId>com.tongtech</groupId>
<artifactId>tongweb-ant</artifactId>
<version>7.0.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<taskdef name="tongdeploy"
classname="com.tongtech.ant.taskdefs.management.TongDeployTask"
classpathref="maven.plugin.classpath"/>
<tongdeploy
url="http://localhost:9060/manager/text"
username="admin"
password="tongweb"
path="/${project.build.finalName}"
war="file:${project.build.directory}/${project.build.finalName}.war"
update="true"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
准备工作
在部署前,请确保:
启用管理控制台:
- 修改
TONGWEB_HOME/webapps/manager/META-INF/context.xml
,配置适当的IP访问限制
- 修改
配置用户权限:
- 修改
TONGWEB_HOME/conf/tomcat-users.xml
,添加管理用户:
<role rolename="manager-script"/> <user username="admin" password="tongweb" roles="manager-script"/>
- 修改
开放管理端口:
- 默认管理端口为9060,确保防火墙已放行
多环境部署配置
<profiles>
<profile>
<id>dev</id>
<properties>
<tongweb.url>http://dev-server:9060/manager/text</tongweb.url>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<tongweb.url>http://prod-server:9060/manager/text</tongweb.url>
<tongweb.path>/prod-${project.build.finalName}</tongweb.path>
</properties>
</profile>
</profiles>
使用命令指定环境:mvn tongweb:deploy -Pprod
常见问题解决
部署失败:权限不足
- 确保用户具有
manager-script
角色 - 检查
tomcat-users.xml
配置
- 确保用户具有
连接被拒绝
- 确认TongWeb服务已启动
- 检查管理端口(默认9060)是否开放
中文乱码问题
- 在插件配置中添加:
<charset>UTF-8</charset>
- 检查TongWeb服务器的文件编码设置
- 在插件配置中添加:
类加载问题
- TongWeb可能有特殊的类加载机制,检查是否需要调整
context.xml
配置
- TongWeb可能有特殊的类加载机制,检查是否需要调整
内存不足
- 调整Maven运行内存:
export MAVEN_OPTS="-Xms512m -Xmx1024m"
- 调整Maven运行内存:
注意事项
- TongWeb的路径规范可能与标准Tomcat有所不同,特别是上下文路径
- 企业版TongWeb可能有额外的安全限制,需要联系管理员获取部署权限
- 生产环境建议使用HTTPS协议进行部署操作
- 部署前建议备份原有应用
如需更详细的配置,请参考东方通官方文档或联系TongWeb技术支持。