Tag: java

未findJava类java.util.ArrayList …和MIME媒体typestext / xml的消息正文编写器

我使用Jersey来构build一个REST服务,并希望返回一个Collection<String>作为XML。 @GET @Produces(MediaType.TEXT_XML) @Path("/directgroups") public Response getDirectGroupsForUser(@PathParam("userId") String userId) { try { Collection<String> result = service.getDirectGroupsForUser(userId, null, true); // return result; //first try // return result.toArray(new String[0]); //second try return Response.ok().type(MediaType.TEXT_XML).entity(result).build(); //third try } catch (UserServiceException e) { LOGGER.error(e); throw new RuntimeException(e.getMessage()); } } 但我的尝试失败,有以下例外: javax.ws.rs.WebApplicationException:com.sun.jersey.api.MessageException:Java类java.util.ArrayList的消息主体编写器,Java类类java.util.ArrayList和MIME媒体typestext / xml不是发现 和所有的结果,我发现通过谷歌处理返回的文本/ JSON而不是像我的情况下的文本/ XML的exception。 任何人都可以帮我吗? 我想,如果我使用一个响应,这将是我在XML的根元素和我的集合中的string元素的列表..

从127.0.0.1到2130706433,再回来

使用标准的Java库,从IPV4地址( "127.0.0.1" )的虚线string表示到等效整数表示( 2130706433 )的最快方法是什么? 相应地,反转所述操作的最快方法是 – 从整数2130706433到string表示"127.0.0.1" ?

seleniumwebdriver不能点击页面外的链接

我有一个Selenium WebDriver的问题。 我尝试点击窗口页面外的链接(您需要向上滚动以查看)。 我目前的代码是相当标准的: menuItem = driver.findElement(By.id("MTP")); menuItem.click(); // I also tried menuItem.sendKeys(Keys.RETURN); 我知道我可以向上滚动,在这种情况下,它会起作用。 但是如果你有一个长长的项目列表,你不一定知道你需要向下滚动多less。 有什么办法可以点击不在页面可见部分的链接(但是如果你滚动的话就可以看到)? 作为一个方面说明,我使用Firefox,但我打算使用IE7 / 8/9和Chrome。 任何帮助将不胜感激。 编辑:恐怕我不能给源代码,因为我工作的公司不允许它,但我可以给我点击链接的代码: <div class="submenu"> <div id="MTP">Link title</div> </div> 当链接可见时,完全相同的代码工作,只有当链接不可用时才起作用。 编辑2:其实,奇怪的是,它不会引发任何exception,只是去下一个指令。 所以基本上,会发生什么是: menuItem = driver.findElement(By.id("MTP")); // no exception menuItem.click(); // no exception //… some code ensuring we got to the next page: timeout reached driver.findElement(By.id("smLH")).click(); // NoSuchElementException, […]

如何禁用Spring日志DEBUG消息?

我正在研究一个简单的桌面应用程序(而不是webapp)。 这是我的log4j.properties : log4j.rootCategory=INFO, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L $$$$ %m%n log4j.logger.org.springframework=ERROR,stdout 正如你所看到的,为了消除来自控制台的Spring日志信息,我尝试了这个解决scheme: 禁用Spring日志,具有可读的日志 当我从我的代码中调用log4jlogging器时,日志消息是根据上面指定的模式(这是好的)。 然而,不好的部分是 – 我仍然得到从spring的控制台DEBUG级别的消息…他们看起来像这里: 无法禁用日志消息 他们有不同的模式。 就好像他们忽略了我的设置。 我也尝试应用我在这里find的build议: https://spring.io/blog/2009/12/04/logging-dependencies-in-spring 在我的文件中: <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.2.0.RELEASE</version> </dependency> 并没有SLF4J。 如果我没有错,这个选项在上面的链接中被提到是一个有效的选项。 我可能在这里错过了什么? 用-Dlog4j.debug = true输出 log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@172aa3f. log4j: Trying to […]

Java中使用分隔符分隔标签“\ t”的stringparsing

我正在处理一个制表符分隔的string。 我正在使用splitfunction来完成这个function,并且在大多数情况下都能正常工作。 问题发生在一个字段丢失,所以而不是在该领域得到空我得到下一个值。 我将分析的值存储在一个string数组中。 String[] columnDetail = new String[11]; columnDetail = column.split("\t"); 任何帮助,将不胜感激。 如果可能的话,我想将parsing的string存储到一个string数组中,这样我就可以轻松访问parsing的数据。

在模型类中使用javafx.beans属性

在模型类中使用JavaFX bean属性是否正确? 我想知道在模型类中使用属​​性是否能很好地将它们与视图组件绑定起来是一个好习惯。 我并不担心将来这些库的可用性,因为我的程序将在JRE8或更高版本上运行,但是在模型类中使用JavaFX库的性质使我感到怀疑,我特别担心当前和未来的不兼容问题,我想用Hibernate来坚持这些属性。 注意:我使用纯JavaFX环境,并且在我的应用程序中我永远不需要Swing兼容性。

为什么Java的SSLSocket发送版本2客户端hello?

SSLSocket.getEnabledProtocols()方法返回以下内容: [SSLv2Hello, SSLv3, TLSv1] 。 实际上,当我调用connect()并打开SSLdebugging时,我看到使用了一个v2客户端hello: main, WRITE: TLSv1 Handshake, length = 81 main, WRITE: SSLv2 client hello message, length = 110 但是我发现两个(不可否认的是旧的)引用说JSSE不支持SSL版本2: 从Java的基础networking : 'SSLv2Hello'是一个伪协议,允许Java用SSLv2'hello消息'发起握手。 这不会导致使用SSLv2协议,这完全不被Java支持。 从JSSE参考指南 : J2SDK 1.4和更高版本中的JSSE实现实现了SSL 3.0和TLS 1.0。 它没有实现SSL 2.0。 现在,我的理解是2.0版客户端hello应该只在客户端支持SSL版本2.0时发送。 从RFC 2246 : 支持SSL版本2.0服务器的TLS 1.0客户端必须发送SSL版本2.0客户端问候消息[SSL2] … 警告:发送版本2.0客户端问候消息的能力将被全部淘汰。 那么为什么Java使用它?

如何用Java发现文件的创build时间?

有没有一种简单的方法来发现一个文件的Java创build时间? File类只有一个获取“上次修改”时间的方法。 根据我在Google上发现的一些资源,File类没有提供getCreationTime()方法,因为并不是所有的文件系统都支持创build时间。 唯一的工作解决scheme,我发现了炮弹命令行和执行“dir”命令,看起来像输出文件的创build时间。 我想这个工程,我只需要支持Windows,但似乎很容易出错。 有没有第三方库提供我需要的信息? 更新:最后,我不认为这是值得我购买第三方库,但他们的API似乎很不错,所以这可能是任何人有这个问题的一个不错的select。

在每第n个位置分割一个string

我使用这个正则expression式在每个第三个位置分割一个string: String []thisCombo2 = thisCombo.split("(?<=\\G…)"); G之后的3个点表示每隔n个位置分割。 在这种情况下,3个点表示每3个位置。 一个例子: Input: String st = "123124125134135145234235245" Output: 123 124 125 134 135 145 234 235 245. 我的问题是,我如何让用户控制的位置数量的string必须拆分? 换句话说,我怎样才能让这3个点,用户控制n个点?

为什么JPasswordField.getPassword()用它的密码创build一个String?

Swing的JPasswordField具有返回char数组的getPassword()方法。 我的理解是这个数组可以在使用后立即清零,这样你就不会有敏感的东西在内存中长时间的存在。 旧的方法来检索密码是使用getText() ,它返回一个string对象,但它已被弃用。 所以,我的问题是,为什么它在使用getPassword()的检索过程中实际上被Java使用? 更清楚的是,我正在debugging我的testing应用程序的其他事情**,我跟着调用和爆炸… JPasswordField getText()被调用,当然,我的密码已经创build了一个不错的String对象,现在是挂在记忆中。 自己尝试一下: public class PasswordTest() { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPasswordField passField = new JPasswordField(); pass.addActionListener(new ActionListener() { public ActionPerformed(ActionEvent evt) { char[] p = passField.getPassword(); // put breakpoint // do something with the array } }); frame.add(passField); frame.setVisible(true); frame.pack(); […]