0

第一部分:我被要求添加-DAPP_ENCRYPTION_PW = pw 我的启动命令,因为属性文件存储数据库密码加密而不是明文?:S 所以我在 JAVA_OPTS 中添加了它。另一种选择-> 在 Catalina.sh 中添加了参数。如果我在这里错了,请告诉我!!!还给我答案,包括如何做的步骤!!!

第二部分:我在 webapps(aapbase) 文件夹中部署了一个 war 文件。试图通过 TomcatManager 启动它,但它给了我这个错误:application at context path could not be started...

有没有人对在这里做什么有某种想法???仅供参考:使用 tomcat 6 ......当我在 Tomcat 6 中运行它时出现此错误。

错误 :

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NullPointerException
    at org.jasypt.encryption.pbe.config.SimplePBEConfig.getPasswordCharArray(SimplePBEConfig.java:434)
    at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.resolveConfigurationPassword(StandardPBEByteEncryptor.java:740)
    at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:590)
    at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.initialize(StandardPBEStringEncryptor.java:570)
    at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.decrypt(StandardPBEStringEncryptor.java:697)
    at org.jasypt.properties.PropertyValueEncryptionUtils.decrypt(PropertyValueEncryptionUtils.java:72)
    at org.jasypt.spring.properties.EncryptablePropertyPlaceholderConfigurer.convertPropertyValue(EncryptablePropertyPlaceholderConfigurer.java:108)
    at org.springframework.beans.factory.config.PropertyResourceConfigurer.convertProperty(PropertyResourceConfigurer.java:121)
    at org.springframework.beans.factory.config.PropertyResourceConfigurer.convertProperties(PropertyResourceConfigurer.java:104)
    at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:81)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:668)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:643)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:437)
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:294)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:215)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
4

2 回答 2

0

如果您使用在 JVM 系统属性中设置的密码(使用 -D),您应该使用 EnvironmentPBEConfig 或 EnvironmentStringPBEConfig 配置对象,而不是您似乎正在使用的 SimplePBEConfig 对象。

该 EnvironmentPBEConfig 对象将允许您设置保存加密密码的 JVM 系统属性的名称 (setPasswordSysPropertyName("APP_ENCRYPTION_PW")),从而使 jasypt 正确读取和使用此密码。

问候。

于 2012-01-11T09:57:41.223 回答
0

尽管这个问题已经很老了,但我在为 mule 设置 jasypt 1.9.2 时遇到了相同的 NPE。确保您配置了“org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig”的“passwordSysPropertyName”属性。它应该可以解决问题。

<spring:bean id="environmentVariablesConfiguration"
    class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
    <spring:property name="algorithm" value="PBEWithMD5AndDES" />
    <spring:property name="passwordSysPropertyName" value="MULE_ENCRYPTION_PASSWORD" />
</spring:bean>
于 2015-06-01T05:38:30.523 回答