Теги HTML не обрабатываются в файле velocity

#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 и убедитесь, что он правильный