站长资源服务器

maven项目远程部署&&使用tomcat配置数据库连接的方法

整理:jimmy2024/12/23浏览2
简介一.使用tomcat远程部署1.1遇到的问题:项目中需要引用第三方jar包,在使用mvn打包项目的时候,会报错'dependencies.dependency.systemPath'for com.dingtalk.api:taobao-sdk-java:jar must be omitted.

一.使用tomcat远程部署

1.1遇到的问题:

项目中需要引用第三方jar包,在使用mvn打包项目的时候,会报错'dependencies.dependency.systemPath'for com.dingtalk.api:taobao-sdk-java:jar must be omitted.问题的原因在于mvn在打包项目的时候,先加载pom.xml,如果本地仓库没有的依赖就会报错。
解决办法:将第三方jar包安装到本地仓库使用命令:Mvn install:install-file -Dfile=E:\taobao-sdk-java-auto_1479188381469-20200422.jar -DgroupId=taobao-sdk-java -DartifactId=taobao-sdk-java -Dversion=2.0 -Dpackaging=jar在pom依赖中加入war,把项目打成war包,否则会默认是jar包,部署不上去。在tomcat config目录下配置tomcat-users.xml后,重启tomcat不行的话,要重启tomcat服务。如果能够成功访问到http://localhost:8080/manager/html,则证明配置成功找错误要可以通过tomcat日志信息快速定位错误的原因,提高解决问题的效率5. 之前一致尝试不成功的原因是因为这个项目是复制之后的项目,idea中的terminal命令行所在的路径还是之前项目的路径,之前项目中的pom没有配置插件,所以导致连接不上。
1.2远程部署的配置
(1)加入插件:

<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>2.2</version>
  <configuration>
    <username>admin</username>
    <password>123456</password>
    <url>http://47.102.123.186:8095/manager/text</url>
    <server>tomcatServer</server> //要与server中的id保持一致
    <update>true</update>
    <path>/zw</path>//项目名
  </configuration>
</plugin> 

(2)配置tomcat目录下tomcat-users.xml配置文件:

<role rolename="admin-gui"/> 
<role rolename="manager-gui"/> // 允许访问html接口(即URL路径为/manager/html/*)<role rolename="manager-script"/>// 允许访问纯文本接口(即URL路径为/manager/text/*)
<user username="admin" password="123456" roles="admin-gui,manager-gui,manager-script"/>
//注意!可以给该用户添加多个角色,为了远程部署,至少需要这个角色:manager-script,也可以开启manager-gui用于可视化管理

(3)配置maven 的setting.xml文件在servers标签下配置:

<server>		
<id>tomcatServer</id>
<username>admin</username>
<password>123456</password>
</server>

(4)使用命令:mvn tomcat7:deploy

二.使用tomcat的配置文件配置数据库连接配置的具体步骤

需要配置tomcat 的conf目录下的server.xml,context.xml,web.xml。
具体的配置如下:Server.xml的GlobalNamingResources标签下配置:

`<Resource name="jdbc/DataSource" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"		
url="jdbc:sqlserver://192.168.0.1;databaseName=xydi"		username="sa" 
password="sa" 
maxActive="20" //最大连接数
maxIdle="10"
maxWait="-1"/>`//最长的等待时间

Context.xml下配置:

<ResourceLink name="jdbc/DataSource" global="jdbc/DataSource" 
type="javax.sql.DataSource"/>// 引入server.xml的配置信息

Web.xml下配置:

<resource-ref>
<res-ref-name>jdbc/DataSource</res-ref-name>//与resource的name保持一致   
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>` 

如果使用的spring框架:

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="java:comp/env/jdbc/DataSource"/>
  <property name="expectedType" value="javax.sql.DataSource"/>
</bean>

没有使用spring框架:

Connection con = null;
Context c = new InitialContext();
DataSource ds = (DataSource) c.lookup("java:/comp/env/jdbc/DataSource");//项目名要与context.xml里面的对应		
con = ds.getConnection(); 

总结