测试Spring MVC注释映射

使用Spring MVC,您可以指定特定URL将由特定方法处理,并且您可以指定特定参数将映射到特定参数,如下所示: @Controller public class ImageController { @RequestMapping(“/getImage”) public String getImage( @RequestParam(“imageId”) int imageId, Map model ) { model.put(“image”,ImageService.getImage(imageId)); } } 这一切都很好,但现在我想测试带有imageId参数的http请求将正确调用此方法。 换句话说,如果我删除或更改任何注释,我想要一个会破坏的测试。 有没有办法做到这一点? 很容易测试getImage是否正常工作。 我可以创建一个ImageController并使用适当的参数调用getImage。 但是,这只是测试的一半。 测试的另一半必须是当适当的HTTP请求进入时,Spring框架是否会调用getImage()。我觉得我还需要对此部分进行测试,特别是当我的@RequestMapping注释变得更加复杂并调用时复杂的参数条件。 如果我删除第4行,@ @RequestMapping(“getImage”) ,你能告诉我一个测试会破坏吗?

如何找出Java应用程序当前打开的文件数量?

假设您的应用程序执行的很多操作都涉及读取文件的内容。 不言而喻,打开然后关闭的文件和生活是好的,除非..新文件进入速度更快,然后旧文件关闭。 这是我发现自己陷入困境的腌制。 现在..有没有办法可靠地知道流程打开了多少文件? 像查看ls /proc/my_pid/fd | wc -l那样可靠的东西 ls /proc/my_pid/fd | wc -l来自JVM内部? 我怀疑答案可能是特定于操作系统的,所以让我补充一点,我在Linux上运行Java。

绑定Spring MVC中的列表映射

我不确定这是否是一个复杂的问题,但作为一个初学者,这对我来说似乎有点复杂。 我有一个对象,我需要在UI上显示一些值,让用户选择其中的一些,我需要在用户点击提交按钮时将数据发送回另一个控制器。这是我的数据对象的结构 public class PrsData{ private Map<String, List> prsCDData; } public class PrsCDData{ private Map<String, Collection> configuredDesignData; } public ConfiguredDesignData{ // simple fields } 我在显示视图之前在模型中设置了对象 model.addAttribute(“prsData”, productData.getPrData()); 在表格中,我有以下设置 这就是我在AddProductToCartController public String addToCart(@RequestParam(“productCodePost”) final String code, @ModelAttribute(“prsData”) final PrsData prsData, final Model model, @RequestParam(value = “qty”, required = false, defaultValue = “1”) final long qty) 在提交表格后,我将收到例外情况 […]

使用jackson将双向JPA实体序列化为JSON

我正在使用Jackson将我的JPA模型序列化为JSON。 我有以下课程: import com.fasterxml.jackson.annotation.*; import javax.persistence.*; import java.util.Set; @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true) @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class) @Entity public class Parent { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @JsonManagedReference @OneToMany(mappedBy = “parent”, cascade = CascadeType.ALL, fetch = FetchType.EAGER) private Set children; //Getters and setters } 和 import com.fasterxml.jackson.annotation.*; import javax.persistence.*; import java.util.HashSet; import […]

如何在tomcat服务器上部署spring boot web应用程序

我已经创建了spring boot web应用程序,但我无法在tomcat上部署spring boot web应用程序WAR文件,我可以将其作为java应用程序运行。 如何在tomcat上将spring boot应用程序作为Web服务运行。 我正在使用以下代码。 如果可以在tomcat上运行,请在不使用web.xml和使用web.xml的情况下帮助我使用注释。 @SpringBootApplication public class Application extends SpringBootServletInitializer { protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } } 以下代码为rest控制器 @RestController public class HelloWorld{ @RequestMapping(value = “/hello”, method = RequestMethod.GET) public ResponseEntity get() { return new ResponseEntity(“Hello World”, […]

Swing UI的unit testing框架

测试UI很困难。 您认为Swing最好的unit testing框架是什么?

如何用java读取密码加密密钥?

我将私钥存储在PKCS8 DER格式的文件中,并受密码保护。 最简单的阅读方式是什么? 这是我用来加载未加密的代码: InputStream in = new FileInputStream(privateKeyFilename); byte[] privateKeydata = new byte[in.available()]; in.read(privateKeydata); in.close(); KeyFactory privateKeyFactory = KeyFactory.getInstance(“RSA”); PKCS8EncodedKeySpec encodedKeySpec = new PKCS8EncodedKeySpec(privateKeydata); PrivateKey privateKey = privateKeyFactory.generatePrivate(encodedKeySpec); 它适用于具有相同规范的未加密密钥。 顺便说一下,我正在使用BouncyCastle。 我可以使用以下openssl命令查看此私钥 openssl pkcs8 -in ./privatekey.key -inform DER -passin pass:thisismypass 请帮忙!!! 我已经在我自己对这个主题的回答中发布了一些解决方案。 但是如果没有额外的库,只有BouncyCastle,任何人都可以提供帮助,我仍然无法回答问题。

如何使用JAXB从XML Schema生成Java Enum?

我正在使用maven插件maven-jaxb2-plugin从XSD Schema文件生成POJO。 这很好用。 唯一让我困扰的是,xml模式枚举没有映射到Java Enum Type中。 我的maven插件是从我称为schemachooser.xsd的文件生成java pojos schemachooser.xsd : 它确实生成文件,但不生成“新”枚举类“MyEnumType”。 我使用绑定错了吗?

REST HTTP身份validation – 如何?

所以,我正在使用RESTeasy和Google App Engine开发REST Web服务。 我的问题与GAE没有关系,但我提到它只是为了重要。 事实上,我需要保护我的资源和我自己的用户(不是谷歌的)。 保护REST Web服务似乎是一个非常有争议的主题,或者至少是一个非常“自由”的主题。 REST没有对此事项施加任何标准。 根据我在网络和文献上的研究,我认为至少有3种方法可能适用于我的应用程序: HTTP Basic (使用SSL) HTTP摘要 (使用SSL) OAuth的 OAuth似乎是最完整的方法。 但我不认为需要这么复杂,因为我不需要授权任何第三方应用程序。 它是仅由我自己的客户端应用程序使用的Web服务。 HTTP Basic和HTTP Digest在Web上显示为最简单的,但事实是我从未使用RESTeasy找到它们的具体实现,例如。 我在RESTeasy的文档中找到了这个页面和这个页面 。 它们确实非常有趣,但它们对此主题(HTTP Basic或Digest)几乎没有任何说明。 所以,我在这里问: 如何使用RESTeasy中的HTTP Basic或Digest保护我的WebService? 也许它很简单,在文档或其他任何地方都不值得一提? 此外,如果有人能够就保护RESTful Web服务的问题向我提供一些见解,那么它可能会有所帮助。 我选择了正确的方法吗?

如何在C#和Java中生成相同的MD5 Hashcode?

我有一个在C#中生成MD5哈希的函数,如下所示: MD5 md5 = new MD5CryptoServiceProvider(); byte[] result = md5.ComputeHash(data); StringBuilder sb = new StringBuilder(); for (int i = 0; i < result.Length; i++) { sb.Append(result[i].ToString("X2")); } return sb.ToString(); 在java中,我的函数如下所示: MessageDigest m = MessageDigest.getInstance(“MD5”); m.update(bytes,0,bytes.length); String hashcode = new BigInteger(1,m.digest()).toString(16); return hashcode; 当C#代码生成:“02945C9171FBFEF0296D22B0607D522D”时,java代码生成:“5a700e63fa29a8eae77ebe0443d59239”。 有没有办法为同一个bytearray生成相同的md5哈希? 一经请求: 这是java中的testcode: File file = new File(System.getProperty(“user.dir”) + “/HashCodeTest.flv”); byte[] bytes […]