NullPointerException,在三元表达式中具有自动装箱function

运行以下Java代码: boolean b = false; Double d1 = 0d; Double d2 = null; Double d = b ? d1.doubleValue() : d2; 为什么会出现NullPointerException?

Tomcat 404错误:原始服务器没有找到目标资源的当前表示,或者不愿意透露存在一个

我正在关注o7planning的教程,并在第6步陷入困境: http://o7planning.org/en/10169/java-servlet-tutorial 这只是一个显示HelloWorld的简单项目,但由于某种原因,我一直收到404错误。 详情: 但是Tomcat欢迎页面正确显示。 这是迄今为止我尝试过的解决方案(并且它们不起作用): 右键单击项目 – >属性 – >项目构面 – >运行时 – >选中“Apache Tomcat v9.0” – >应用 – >完成。 “服务器”选项卡 – >右键单击“Tomcat v9.0 …” – >属性 – >切换位置 – >在“服务器位置”面板上选择“使用tomcat安装”。

如何在属性文件中指定值,以便可以使用ResourceBundle#getStringArray检索它们?

我试图使用ResourceBundle#getStringArray从属性文件中检索String[] 。 文档中对此方法的描述如下: 从此资源包或其父项之一获取给定键的字符串数组。 但是,我试图将属性文件中的值存储为多个单独的键/值对: key=value1 key=value2 key=value3 并以逗号分隔的列表: key=value1,value2,value3 但这些都不能使用ResourceBundle#getStringArray检索。 如何在属性文件中表示一组键/值对,以便可以使用ResourceBundle#getStringArray检索它们?

Java Classloader – 如何引用jar的不同版本

这是一个常见问题。 我正在使用2个库A.jar和B.jar ,这些库依赖于同一个jar的不同版本。 假设在运行时我需要THIS.xxxjar MY.jar -> A.jar -> THIS.1.0.0.jar -> B.jar -> C.jar -> THIS.5.0.0.jar 我可以针对它的依赖编译特定的jar(A.jar / B.jar)但是在运行时我只能加载1个版本。 哪一个? 仅加载1个依赖项(最新版本)意味着如果库不是向后兼容的,那么我的代码可能会抛出运行时exception(那里有向后兼容的库吗?)。 无论如何,我知道像OSGi这样的东西可以解决这个问题。 我想知道解决这类问题的旧方法是什么…… 非常感谢

OpenCSV – 如何将所选列映射到Java Bean而不管顺序如何?

我有一个包含以下列的CSV文件: id , fname , telephone , lname , address 。 我有一个带有id , fname和lname数据成员的Person类。 我想从CSV文件中仅将这些列映射到Person对象,并丢弃telephone和address列。 我怎样才能做到这一点? 解决方案必须扩展,因为将来会添加更多列。 并且无论列位置如何都应该工作。 在理想的解决方案中,用户只会指定要读取的列,它应该可以正常工作。

使用@ElementCollection映射Set

我有以下枚举: package ir.raysis.tcs.rule.days; public enum Days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY; } 我尝试将其映射为Set天,如下所示: @ElementCollection(targetClass = Days.class) @JoinTable(name = “days”,joinColumns = @JoinColumn(name = “rule_id”)) @Column(name =”daysOfWeek”, nullable = false) @Enumerated(EnumType.STRING) private Set days = new HashSet(); 但是,它会引发以下exception: Initial SessionFactory creation failed.org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: rule, for columns: [org.hibernate.mapping.Column(days)] […]

使用JAX-RS的FileUpload

我尝试从JavaScript客户端上传文件到JAX-RS Java服务器。 我在我的服务器上使用以下REST上传function: @POST @Produces(‘application/json’) UploadDto upload( @Context HttpServletRequest request, @QueryParam(“cookie”) String cookie) { def contentType byte [] fileBytes log.debug “upload – cookie: “+cookie try{ if (request instanceof MultipartHttpServletRequest) { log.debug “request instanceof MultipartHttpServletRequest” MultipartHttpServletRequest myrequest = request CommonsMultipartFile file = (CommonsMultipartFile) myrequest.getFile(‘file’) fileBytes = file.bytes contentType = file.contentType log.debug “>>>>> upload size of the […]

DocumentBuilder.parse(InputStream)返回null

我正在修复有关DocumentBuilder.parse的现有代码的错误。 我有以下代码: String theOutput; theOutput = response.encodeURL(prefix + “/include/sampleForConversion.jsp?” + request.getQueryString(); StreamSource xmlSource = new StreamSource(new URL(theOutput).openStream(), “http://sampleApps.net/static/dataDef1.1.dtd”); Document xmlDoc = dBuilder.parse(xmlSource.getInputStream()); 我不明白为什么我得到xmlDoc的空值虽然我有theOutput和xmlSource变量的有效值。 请帮忙。 谢谢!

启用Hibernate日志记录

我正在尝试创建一个hibernate语句的日志。 我使用JPA执行我的sql语句,其中Hibernate 2.0是持久性提供程序(我的应用程序服务器是JBoss AS 6.0)。 我使用EJB 3.0提供的EntityManager接口调用我的CRUD方法。 我读了很多关于启用hinernate日志的post,但实际上我看不到任何日志:-(我创建了一个log4j.properties文件,我将它放在我的Netbeans项目的根文件夹中。我还将log4j库放在了类的路径中我的log4j.properties是以下内容: ### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L – %m%n log4j.rootLogger=debug, stdout log4j.logger.org.hibernate=info ### log just the SQL log4j.logger.org.hibernate.SQL=debug ### log JDBC bind parameters ### log4j.logger.org.hibernate.type=info ### log schema export/update ### log4j.logger.org.hibernate.tool.hbm2ddl=info ### log HQL parse trees #log4j.logger.org.hibernate.hql=debug ### log cache activity […]

javax.crypto.IllegalBlockSizeException:使用填充密码解密时,输入长度必须是16的倍数

我在java类中遇到解密错误: javax.crypto.IllegalBlockSizeException : Input length must be multiple of 16 when decrypting with padded cipher. 我该怎么做才能解决这个问题? 更新: 我忘了提到它工作一次,第二次我试图再次执行它时抛出上述错误。 package com.tb.module.service; import java.security.Key; import java.security.spec.InvalidKeySpecException; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import sun.misc.*; /** * This class is used for encrypt and decrypt the password field. * */ public class PswdEnc { private static final String ALGO = […]