- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 espai ESAPI 对字符串值进行编码以解决跨站点脚本问题,如下所示(代码片段)。
String encodedString = ESAPI.encoder().encodeForHTML(value);
异常跟踪
org.owasp.esapi.errors.ConfigurationException: java.lang.reflect.InvocationTargetException Encoder class (org.owasp.esapi.reference.DefaultEncoder) CTOR threw exception.
at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:129)
at org.owasp.esapi.ESAPI.encoder(ESAPI.java:99)
<bold>Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/spi/LoggerFactory</bold>
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:74)
at org.owasp.esapi.ESAPI.logFactory(ESAPI.java:137)
at org.owasp.esapi.ESAPI.getLogger(ESAPI.java:154)
at org.owasp.esapi.reference.DefaultEncoder.<init>(DefaultEncoder.java:75)
at org.owasp.esapi.reference.DefaultEncoder.getInstance(DefaultEncoder.java:59)
... 71 more
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.spi.LoggerFactory
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
Maven 存储库 pom.xml
<dependency>
<groupId>org.owasp.esapi</groupId>
<artifactId>esapi</artifactId>
<version>${org.owasp.esapi.version}</version>
<exclusions>
<exclusion>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
<exclusion>
<groupId>xercesImpl</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
<exclusion>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
</exclusion>
<exclusion>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</exclusion>
<exclusion>
<groupId>org.owasp.antisamy</groupId>
<artifactId>antisamy</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
如果我不排除 log4j 那么它会抛出依赖收敛错误,因为 log4j 是在 maven banned 依赖中声明的,如下所示
<executions>
<execution>
<id>enforce</id>
<configuration>
<rules>
<requireJavaVersion>
<version>${java.version}</version>
</requireJavaVersion>
<requireMavenVersion>
<version>3.0</version>
</requireMavenVersion>
<DependencyConvergence />
<bannedDependencies>
<excludes>
<!-- This should not exist as it will force SLF4J calls to be
delegated to log4j -->
<exclude>org.slf4j:slf4j-log4j12</exclude>
<!-- This should not exist as it will force SLF4J calls to be
delegated to jul -->
<exclude>org.slf4j:slf4j-jdk14</exclude>
<!-- Ensure only the slf4j binding for logback is on the classpath -->
<exclude>log4j:log4j</exclude>
<!-- As recommended from the slf4j guide, exclude commons-logging -->
<exclude>commons-logging:commons-logging</exclude>
</excludes>
</bannedDependencies>
</rules>
</configuration>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
在这方面的帮助将不胜感激。如果您需要更多详细信息,请告诉我。提前致谢!
最佳答案
我升级到最新版本 2.2.1.1
并且我需要在 ESAPI.properties
中添加两个额外的属性(除了 @Carlo 指出的那个) :
ESAPI.Logger=org.owasp.esapi.logging.slf4j.Slf4JLogFactory
Logger.UserInfo=false
Logger.ClientInfo=false
关于java - ESAPI - 获取具有禁止依赖项的 NoClassDefFoundError (LoggerFactory),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34295088/
我正在努力提高我的 Java 优化技能。为了实现这一目标,我制作了一个旧程序,我正在尽最大努力让它变得更好。在这个程序中,我使用 SL4J 进行日志记录。为了获得记录器,我做了: private st
当通过 Java 代码运行 Hadoop 时,LoggerFactory 对象用法的输出到哪里去了?如何跟踪这个记录器? 最佳答案 如果您的 LoggerFactory 对象是 slf4j api 的
我有一个问题我还没有找到答案。那么这两条线有什么区别呢? private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.cl
我设置了一个基本的 Java 程序。我正在关注这个tutorial并有这个确切的代码: import org.slf4j.Logger; import org.slf4j.LoggerFactory;
这可能很简单,但我已经浪费了很多时间来寻找解决方案。 我有 package net.rubyeye.xmemcached; ... import org.slf4j.Logger; import or
我使用 Microsoft.Extensions.Logging 创建了一个使用服务层的控制台应用程序。 Program.cs public static void Main(string[] arg
我想读取一个项目的 iCalendar(ics 文件),并认为仅使用 API 可能会更容易。经过大量研究,我发现了 iCal4j。 我是 ical4j 的新手,一直在寻找答案,并尝试进行研究,发现它的
我目前正在实现一个记录器,我想知道为什么代码无法运行。大多数代码片段都是这样的: Logger log = LoggerFactory.getLogger(this.getClass()); 我导入的
所以, 我正在使用这个示例 BONECP : package javasampleapps; import java.sql.Connection; import java.sql.ResultSet
我已经阅读了大量帖子和文档(在本网站和其他地方),指出 SFL4J 日志记录的推荐模式是: public class MyClass { final static Logger logger
再会。 我正在尝试通过在我的自定义 ActionFilterAttribute 类中注入(inject) LoggerFactory 来使用日志记录,但是在其中一个 Controller 方法中使用
ConsoleLoggerProvider有四个构造函数: ConsoleLoggerProvider(IConsoleLoggerSettings) ConsoleLoggerProvider(IO
我已经从 http://search.maven.org/#search%7Cga%7C1%7Chikaricp 下载了 HikariCP JAR (第五行)并将其放置在我的构建路径中。如果你打电话
我开发了一个使用 NLog 的 WPF 应用程序。它已部署到一些潜在客户,在其中一个中,该应用程序在一周内运行良好,但现在甚至打不开。也就是说,您双击应用程序图标,实际上什么也没有发生。甚至 AppD
我正在使用 espai ESAPI 对字符串值进行编码以解决跨站点脚本问题,如下所示(代码片段)。 String encodedString = ESAPI.encoder().encodeForHT
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我正在尝试运行 GWT RequestFactory 并遇到此错误: ClassNotFoundException: org.slf4j.LoggerFactory 我尝试下载slf4j-api-1.
在 kotlin 中使用 SLF4J 或其他日志记录方法最方便的方法是什么? 通常开发人员忙于处理样板代码,例如 private val logger: Logger = LoggerFactory.
我只是想借助gradle和应用程序插件为我的应用程序创建可运行的* .jar文件。 构建过程没有错误, list 文件可以正常运行,等等,但是在运行* .jar文件时会发生以下情况: java.lan
我想使用 Java 在 Sonarqube 中构建一个自定义规则,它可以捕获这种情况的发生: import org.slf4j.Logger; import org.slf4j.LoggerFacto
我是一名优秀的程序员,十分优秀!