#spring #tomcat #velocity
#spring #tomcat #скорость
Вопрос:
У меня есть приложение spring, которое использует velocity. Существует планировщик quartz, который запускается каждые несколько минут и отправляет электронные письма. Содержимое электронного письма генерируется из шаблона velocity. Проблема в том, что если это приложение запускается с использованием плагина tomcat от maven, тогда теги HTML в файле шаблона электронной почты обрабатываются правильно. Но если я помещу это приложение в автономную установку tomcat и запущу его оттуда, теги отображаются в электронном письме как
<p> <br />
, и динамическое содержимое не задано. Я не могу понять, в чем именно проблема. Какой-то jar в моем приложении конфликтует с экземпляром tomcat? Вот список jar в его папке lib :
activation-1.1.jar juli-6.0.32.jar
activemq-all-5.4.2.jar junit-4.8.1.jar
annogen-0.1.0.jar log4j-1.2.16.jar
ant-1.7.0.jar lucene-analyzers-3.1.0.jar
ant-launcher-1.7.0.jar lucene-core-3.1.0.jar
antlr-2.7.6.jar lucene-highlighter-3.1.0.jar
ant-nodeps-1.7.0.jar lucene-memory-3.1.0.jar
aopalliance-1.0.jar lucene-misc-3.1.0.jar
asm-3.1.jar lucene-smartcn-3.1.0.jar
aspectjrt-1.6.9.jar lucene-spatial-3.1.0.jar
aspectjweaver-1.6.8.jar lucene-spellchecker-3.1.0.jar
axiom-api-1.2.7.jar lucene-stempel-3.1.0.jar
axiom-dom-1.2.5.jar mail-1.4.jar
axiom-impl-1.2.7.jar mysql-connector-java-5.1.13.jar
axis2-1.4.jar neethi-3.0.0.jar
axis2-adb-1.3.jar opencsv-2.1.jar
axis2-adb-codegen-1.3.jar opensaml-1.1.jar
axis2-codegen-1.3.jar oro-2.0.8.jar
axis2-kernel-1.3.jar quartz-1.6.1.jar
axis2-mtompolicy-1.3.jar rampart-core-1.3.jar
axis2-xmlbeans-1.3.jar rampart-policy-1.3.jar
axis-wsdl4j-1.5.1.jar rampart-trust-1.3.jar
backport-util-concurrent-3.1.jar slf4j-api-1.5.8.jar
cas-client-core-3.1.10.jar slf4j-log4j12-1.5.2.jar
cglib-2.2.jar solr-analysis-extras-3.1.0.jar
commons-beanutils-1.7.0.jar solr-commons-csv-3.1.0.jar
commons-codec-1.4.jar solr-core-3.1.0.jar
commons-collections-3.2.1.jar solr-solrj-3.1.0.jar
commons-dbcp-1.2.2.jar spring-aop-3.0.3.RELEASE.jar
commons-digester-1.7.jar spring-asm-3.0.5.RELEASE.jar
commons-discovery-0.2.jar spring-aspects-3.0.5.RELEASE.jar
commons-fileupload-1.2.2.jar spring-beans-3.0.5.RELEASE.jar
commons-httpclient-3.1.jar spring-context-3.0.5.RELEASE.jar
commons-io-2.0.jar spring-context-support-3.0.5.RELEASE.jar
commons-lang-2.5.jar spring-core-3.0.5.RELEASE.jar
commons-logging-1.1.1.jar spring-expression-3.0.5.RELEASE.jar
commons-pool-1.3.jar spring-jdbc-3.0.5.RELEASE.jar
commons-validator-1.3.0.jar spring-jms-3.0.5.RELEASE.jar
dom4j-1.6.1.jar spring-modules-validation-0.8.jar
ehcache-core-2.2.0.jar spring-orm-3.0.5.RELEASE.jar
geronimo-activation_1.1_spec-1.0.1.jar spring-oxm-3.0.5.RELEASE.jar
geronimo-javamail_1.4_spec-1.2.jar spring-security-cas-client- 3.0.3.RELEASE.jar
geronimo-jms_1.1_spec-1.1.jar spring-security-core-3.0.3.RELEASE.jar
geronimo-jta_1.0.1B_spec-1.1.1.jar spring-security-web-3.0.3.RELEASE.jar
geronimo-stax-api_1.0_spec-1.0.1.jar spring-tx-3.0.3.RELEASE.jar
hibernate-annotations-3.5.4-Final.jar spring-web-3.0.5.RELEASE.jar
hibernate-commons-annotations-3.2.0.Final.jar spring-webmvc-3.0.5.RELEASE.jar
hibernate-core-3.5.4-Final.jar spring-ws-core-2.0.2.RELEASE.jar
hibernate-entitymanager-3.5.4-Final.jar spring-xml-2.0.2.RELEASE.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar stax2-api-3.0.2.jar
hibernate-search-3.4.1.Final.jar stax-api-1.0.1.jar
hibernate-search-analyzers-3.4.1.Final.jar stax-api-1.0-2.jar
hibernate-validator-4.1.0.Final.jar
httpcore-4.0-alpha5.jar
httpcore-nio-4.0-alpha5.jar tribes-6.0.32.jar
httpcore-niossl-4.0-alpha5.jar validation-api-1.0.0.GA.jar
icu4j-2.6.1.jar velocity-1.6.4.jar
itextpdf-5.1.1.jar velocity-tools-1.4.jar
jackson-core-asl-1.5.3.jar woden-api-1.0M9.jar
jackson-mapper-asl-1.5.3.jar woodstox-core-asl-4.0.8.jar
jasypt-1.8.jar wsdl4j-1.6.1.jar
javassist-3.9.0.GA.jar ws-humanresources-13.0.1.jar
jaxen-1.1.jar wss4j-1.5.3.jar
jdom-1.0.jar wstx-asl-3.2.4.jar
jetty-continuation-8.0.0.M3.jar xalan-2.7.0.jar
jetty-http-8.0.0.M3.jar xbean-2.1.0.jar
jetty-io-8.0.0.M3.jar xbean-spring-3.6.jar
jetty-server-8.0.0.M3.jar xercesImpl-2.8.1.jar
jetty-util-8.0.0.M3.jar xml-apis-1.3.03.jar
joda-time-1.6.jar xmlParserAPIs-2.6.2.jar
js-1.6R2.jar XmlSchema-1.3.2.jar
jstl-1.2.jar xmlsec-1.4.0.jar
jta-1.1.jar xom-1.0.jar
Содержимое шаблона velocity :
#if( ${user.middleName} )
#set( $fullName = "${user.firstName} ${user.middleName} ${user.lastName}" )
#else
#set( $fullName = "${user.firstName} ${user.lastName}" )
#end
#set( $subject = "User name for ${fullName} is changed" )
#set( $from = "test@test.com" )
#set( $to = "${user.email}" )
<p>Hi ${fullName}</p>
<p>Thanks!<br></p>
Любая помощь приветствуется, потому что я нахожусь в тупике.
Комментарии:
1. Нет никакой «обработки» тегов HTML, они просто генерируются — скорее всего, это проблема mimetype / etc.
2. Но как насчет переменных, таких как ${FullName}, которые также не обрабатываются. Я забыл упомянуть одну вещь, хотя, что этот файл находится в зависимости.
3. Ничего не зная о том, как / где вы настраиваете контекст, невозможно знать наверняка. Возможно, это конфликт библиотек, но трудно сказать.
4. Я предполагаю, что в вашей весенней проводке что-то не так. Кроме того, проверьте свои журналы и посмотрите, есть ли какие-либо предупреждения исключения. Помимо этого, вам придется показать гораздо больше, извините.
Ответ №1:
Похоже, что символы экранируются … лучше всего посмотреть на исходный код html, но, скорее всего, вы увидите < и > вместо < и > . Обычно это происходит (в зависимости от конфигурации), если вы передаете html в шаблон velocity в контексте velocity. Однако для вас это не должно быть так, поскольку ваш html-код уже есть в шаблоне, но он где-то экранируется.
Я думаю, что экранирование происходит после того, как velocity обработал шаблон. Вам следует взглянуть на конфигурацию tomcat, а также на то, что вы делаете с электронной почтой после обработки шаблона
Извините, я не могу больше помочь, но в вашем вопросе не так много
Ответ №2:
Электронное письмо отправляется как текст / обычный, а не как текст / html. Проверьте тип mime и убедитесь, что он правильный