我遇到空指针异常,不知道如何克服这个问题并混淆代码。你有什么想法吗?
我正在努力混淆一些库的[Maven]Spring启动项目与ProGuard(proGuard proGuard-maven-plugin)
堆栈跟踪:
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.github.wvengen:proguard-maven-plugin:2.0.11:proguard (proguard) on project XXX: Execution proguard of goal com.github.wvengen:proguard-maven-plugin:2.0.11:proguard failed.
(...)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution proguard of goal com.github.wvengen:proguard-maven-plugin:2.0.11:proguard failed.
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
Caused by: java.lang.NullPointerException
at com.github.wvengen.maven.proguard.ProGuardMojo.execute(ProGuardMojo.java:506)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
... 20 more
POM构建插件:
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.0.11</version>
<executions>
<execution>
<id>proguard</id>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<obfuscate>true</obfuscate>
<injar>${project.build.finalName}.jar</injar>
<outjar>${project.build.finalName}-small.jar</outjar>
<outputDirectory>${project.build.directory}/proguard</outputDirectory>
<proguardInclude>${basedir}/proguard.conf</proguardInclude>
<libs>
<lib>${java.bootstrap.classes}</lib>
<lib>${java.cryptographic.extension.classes}</lib>
<lib>${java.secure.socket.extension.classes}</lib>
</libs>
<injarNotExistsSkip>true</injarNotExistsSkip>
<options>
</options>
</configuration>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>5.2.1</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
给定所提到的stackTrack,并寻找2.0.11版本插件的源代码,NullPointerExcture被抛出在这个块的ProGuardMojo
类:
502 if (libs != null) {
503 for (Iterator i = libs.iterator(); i.hasNext();) {
504 Object lib = i.next();
505 args.add("-libraryjars");
506 args.add(fileNameToString(lib.toString()));
507 }
508 }
这意味着很可能是lib。toString()
是对null
引用的方法调用。
从你提到的插件配置中,我们可以看到:
<libs>
<lib>${java.bootstrap.classes}</lib>
<lib>${java.cryptographic.extension.classes}</lib>
<lib>${java.secure.socket.extension.classes}</lib>
</libs>
因此,这些Maven属性中很可能有一个未设置,作为空/null传递,并导致错误。
您应该检查这些属性是否具有有效值,或者是否应该从命令行传递,事实并非如此。
问题内容: 我正在尝试为视图创建JPA实体。在数据库层中,表和视图应该相同。 但是,问题开始出现并且有两个方面: 尝试设置正确的注释时。视图没有与之关联的主键,但是如果没有对字段进行适当的注释,则会在运行时引发抛出异常。 Spring Boot 接口定义要求类型为extends ,这避免了由于视图实体上缺少ID 而不能用作替代方法。 与缺少主键的视图进行交互的正确JPA / SpringBoot
问题内容: 我编写了一个测试UsersController的单元测试。UsersControllerTest.findUser工作正常,但不能正常运行UsersControllerTest.insertGetModifyDelete。 在测试日志中,我可以看到POST请求与UsersController的任何方法都不匹配,但是我不明白为什么。您能帮我这个吗? 这是我其余的Java类: 我有2种方法
问题内容: 我正在尝试使用Spring Boot在本地设置DynamoDB。最初,我开始进行设置,并能够通过存储库将其写入/保存到DynamoDB。从那时起,我添加了更多类来构建我的应用程序。现在,当我尝试启动应用程序时,出现以下异常: 我已经广泛搜索了SO和Internet,但是对此没有任何有用的解决方案。该错误消息也具有误导性。 我的项目属于以下层次结构 DynamoDBConfig.java
问题内容: 我必须实例化一个类,该类使用@class中的信息从JSON扩展了抽象类,如下所示。 在这里,抽象类是动物,而狗则扩展了动物类。因此,使用@class中的信息,我们可以直接实例化dog吗。这也是我在restTemplate中得到的响应 执行此行时,将出现以下错误。由于POJO类是自动生成的,因此我无法使用 @JsonTypeInfo之 类的 注释 我正在使用Spring Boot和Mav
本文向大家介绍SpringBoot 并发登录人数控制的实现方法,包括了SpringBoot 并发登录人数控制的实现方法的使用技巧和注意事项,需要的朋友参考一下 通常系统都会限制同一个账号的登录人数,多人登录要么限制后者登录,要么踢出前者,Spring Security 提供了这样的功能,本文讲解一下在没有使用Security的时候如何手动实现这个功能 demo 技术选型 SpringBoot JW
问题内容: 我的应用程序中已有一个父子关系,但由于我们在父子的主键中都添加了“类型”列,因此该关系最近变得更加复杂。在此之后,添加,阅读和修改儿童效果很好,但是删除它们很痛苦。 使用Vlad Mihalcea在本文中针对@OneToMany关系给出的建议以及组合键上的各种示例,我尝试了一种类似于以下模型的实现。但是,删除孩子仍然无法正常工作,现在我得到了一个奇怪的错误消息作为奖励。 我正在使用Sp