<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="org.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://yourDBurl:yourport/yourDBname" />
<property name="username" value="youraccountname" />
<property name="password" value="youraccountpassword" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:my/package/mapper/*.xml" />
</bean>
<!--
// This is a part of the root-context.xml
// in `src/main/java/my/package/mapper`, there are XML mapper files. // "src/main/java"
// -- In my case, the mappers were in the classpath `src/main/java`
-->
Это была моя первоначальная настройка маппера (вызывающая ошибку). Этот параметр отлично работал, когда я запускаю проект Spring на локальном сервере. Также в случае, если я экспортировал файл войны в eclipse, затем разверните войну собственноручно на сервере вручную. Также в случае, если я экспортировал файл войны в eclipse, затем разверните войну с Tomcat Manager на сервере вручную. ** Но недоступно только для Jenkins. Сборка Maven всегда была успешной, но только при развертывании. ** * Решение * => Я изменил настройку картографа в проекте Spring и перенёс картографы с src/main/java
на src/main/resources
=> Причина ошибки, которую я предположил, заключается в том, что Дженкинс не может читать, <property name="mapperLocations" value="classpath:my/package/mapper/*.xml" />
, это конфигурация. => Та же конфигурация JDB C, я изменил только настройку mybatis следующим образом.
<!-- with same jdbc config -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis/mybatis-configuration.xml" />
</bean>
<!--
// This is a part of the root-context.xml
// NOW in `src/main/resources/my/package/mapper`, there are XML mapper files. // "src/main/resources"
-->
=> В src/main/resources/mybatis-configuration.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<!-- <typeAlias alias="yourDTO" type="my.package.dto.yourDTO"></typeAlias> -->
</typeAliases>
<mappers>
<mapper resource="mybatis/mapper/yourmapper.xml" />
<!-- mappers, and so on -->
</mappers>
</configuration>
=> Поместите картографы mybatis в каталог src/main/resources/mapper
. Напишите yourmapper.xml
как обычный mybatis mapper XML файл.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="my.package.dto.yourDTO">
<!-- your mybatis tag with SQL query -->
</mapper>
PS - Я только что догадался, что Дженкинс не может читать картографы в src/main/java
. - Я на самом деле не понимал и не анализировал открытый исходный код Jenkins. - Итак, причина, которую я указал, может быть неправильной, но, по крайней мере, в моем загадочном случае было доступно автоматическое развертывание с Jenkins. - Надеюсь, это может быть полезно.