将restful ajax请求映射到spring

我有这段代码: @RequestMapping(value = “/test.json”, method = RequestMethod.GET) @ResponseStatus(HttpStatus.OK) public @ResponseBody Object[] generateFile(@RequestParam String tipo) { Object[] variaveis = Variavel.getListVariavelByTipo(tipo); return variaveis; } 据我所知,它应该接受test.json?tipo = H的请求并返回Variavel []的JSON表示,但是当我提出这样的请求时,我得到: HTTP状态406 – 类型状态报告 信息 description此请求标识的资源只能根据请求“accept”标题生成具有不可接受特征的响应() 通过使用以下函数,我可以得到预期的json: @RequestMapping(value = “/teste.json”) public void testeJson(Model model, @RequestParam String tipo) { model.addAttribute(“data”, Variavel.getListVariavelByTipo(“H”)); } 我做错了什么?

使用Gson反序列化ImmutableList

我正在使用相当多的不可变集合,我很好奇如何使用Gson对它们进行反序列化。 由于没有人回答我自己找到了解决方案,我正在简化问题并提出自己的答案。 我有两个问题: 如何编写一个适用于所有ImmutableList的单个Deserializer ? 如何为所有ImmutableList ?

访问java中内部类中的变量

我正在尝试创建一个JLabel数组,所有这些都应该在单击时隐藏。 当尝试通过需要访问用于声明标签的循环的迭代变量的内部类来设置鼠标侦听器时,会出现问题。 代码不言自明: for(int i=1; i<label.length; i++) { label[i] = new JLabel("label " + i); label[i].addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent me) { label[i].setVisible(false); // compilation error here } }); cpane.add(label[i]); } 我认为我可以通过使用this或者super而不是内部方法中的label[i]的调用来克服这一点但我无法弄明白。 编译错误是:从内部类中访问局部变量i; 需要宣布最终 我确信答案肯定是我没想过的傻事,或者我犯了一些小错误。 任何帮助,将不胜感激

不推荐使用HttpClient.getParams()。 我该怎么用?

我正在使用apache-httpclient-4.3。 我会分析一个http请求,特别是查询字符串参数,但是 @Deprecated public HttpParams getParams() Deprecated. (4.3) use constructor parameters of configuration API provided by HttpClient 我不确定这意味着什么。 我应该使用一些配置API的构造函数参数(那是什么?HostConfiguration不再作为类提供)。 但是在构建阶段我直接通过url传递查询参数: HttpGet request = new HttpGet(“http://example.com/?var1=value1&var2=value2”); 我找不到从请求对象中读回参数( var1,var2 )的方法,而不使用不推荐使用的方法,这对于从对象获取属性应该很简单。

获取JAXBexception,如“两个类具有相同的XML类型名称……”

获取JAXBexception,例如“两个类具有相同的XML类型名称……”, 以下是exception详细信息 : 线程“main”中的exceptioncom.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:IllegalAnnotationExceptions的1个计数两个类具有相同的XML类型名称“city”。 使用@ XmlType.name和@ XmlType.namespace为它们分配不同的名称。 此问题与以下位置有关:com.model.City的com.model.City com.model.City com.model.Address.getCurrentCity()at com.model.Address此问题与以下位置有关:at com.common公共com.common.City com.model.Address.getPreviousCity()at com.model.Address at com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException $ Builder.check(Unknown Source)at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(Unknown Source)at com.sun位于com.sun.xml.internal的com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl $ JAXBContextBuilder.build(未知来源)的.xml.internal.bind.v2.runtime.JAXBContextImpl。(未知来源)。位于sun.reflect.NativeMethodAccessorImpl的sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)的com.sun.xml.internal.bind.v2.ContextFactory.createContext(未知来源)中的bind.v2.ContextFactory.createContext(未知来源)。在位于javax.xml的javax.xml.bind.ContextFinder.newInstance(未知来源)的java.lang.reflect.Method.invoke(未知来源)的sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)中调用(未知来源)。来自com.PojoToXSD.m的javax.xml.bind.JAXBContext.newInstance(未知来源)的javax.xml.bind.JAXBContext.newInstance(未知来源)中的bind.ContextFinder.find(未知来源) 艾因(PojoToXSD.java:17) 我举了这样的例子: package **com.model**; —->this package contains ‘Address’ class and ‘City’ class public class Address { private String areaName; private City currentCity; private com.common.City previousCity; } package com.model; public class City […]

JBoss和不同版本的Hibernate

我们使用的是JBoss 4.2.3,后者又带有Hibernate的3.2.1.ga版本。 我想使用支持JPA 2.0的Hibernate 3.5.1-FINAL。 我一直在尝试通过将我自己的hibernate jar放入我的WEB-INF / lib文件夹并在jboss-web.xml中为我的WAR创建自己的类加载器来完成这项工作。 com.moo.foo:archive=catalog-archive 我也尝试过: com.moo.catalog:loader=catalogLoader java2ParentDelegation=false 但是我遇到了各种各样的问题,这是我目前坚持的例外: Caused by: java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator.(java.lang.Class, java.util.ResourceBundle, org.hibernate.validator.MessageInterpolator, java.util.Map, org.hibernate.annotations.common.reflection.ReflectionManager) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.getDeclaredConstructor(Unknown Source) at org.hibernate.cfg.AnnotationConfiguration.applyHibernateValidatorLegacyConstraintsOnDDL(AnnotationConfiguration.java:443) 由于截止日期即将来临,我想我最好问一下它是否可能? 🙂

如何使用java驱动程序更新mongo db中的文档字段?

参考文献: http://www.mongodb.org/display/DOCS/Java+Tutorial 仍然是mongo db的新手,但我正在尝试更新集合中现有文档的一部分……遗憾的是,上面的链接没有更新示例。 基本上,我只是希望能够: 向文档添加新字段 将文档的现有字段更新为新值 这是我的代码(Grails + Groovy + Java + MongoDB + java驱动程序): def shape = mongo.shapes.findOne(new BasicDBObject(“data”, “http://www.foo.com”)); // get the document mongo.shapes.update(new BasicDBObject(“_id”, shape._id), new BasicDBObject(“isProcessed”, 0)); // add a new “isProcessed” field set to 0 mongo.shapes.update(new BasicDBObject(“_id”, shape._id), new BasicDBObject(“data”, “http://www.bar.com”)); 这几乎破坏了整个对象……我可能会尝试修改原始形状对象然后在其上运行更新。 但在那之前, 是否有人有更新单个字段(而不是整个文档)的经验? 编辑: 我只是尝试了它,并且能够通过发送整个对象以及新的和/或更新的字段来成功更新。 我想知道驱动程序是否足够智能,只更新最小的更改子集,或者只是盲目更新整个事物? (在下面的例子中,它是仅仅通过电线或整个形状文档更新foo字段?) 码: […]

为什么修剪不起作用?

我试图从字符串中修剪前导空格,我不知道我的方法有什么问题,任何建议都会受到赞赏吗? 码: this.poNumber = poNumber.equals(“”) ? poNumber : poNumber.trim(); 我正在从csv文件中读取poNumber作为“IG078565和IG083060”并且输出也得到相同的空格相同值,不知道为什么? 更新 为更好的上下文添加完整方法: public BillingDTO(String currency, String migrationId, String chargeId, String priceId, String poNumber, String otc, String billingClassId, String laborOnly) { super(); this.currency = currency.equals(“”) ? currency : currency.trim(); this.migrationId = migrationId.equals(“”) ? migrationId : migrationId.trim(); this.chargeId = chargeId.equals(“”) ? chargeId : chargeId.trim(); this.priceId = priceId.equals(“”) […]

在JTextPane中包装长单词(Java 7)

在最多6个Java的所有版本中,放置在JScrollPane中的JTextPane的默认行为是:如果可能,在字边界处换行。 如果没有,那么无论如何都要包裹它们。 在JDK 7中,默认行为似乎是:如果可能,在字边界处换行。 如果没有,只需展开JTextPane的宽度(永远不要换长字)。 很容易重现这个,这是一个SSCCE: public class WrappingTest extends JFrame { public static void main ( String[] args ) { new WrappingTest(); } public WrappingTest () { setSize(200,200); getContentPane().setLayout(new BorderLayout()); JTextPane jtp = new JTextPane(); JScrollPane jsp = new JScrollPane(jtp); jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); getContentPane().add(jsp,BorderLayout.CENTER); setVisible(true); } } 只需在JDK 6和JDK 7中运行它,写一些小字,然后写一个长字,你就会看到差异。 我的问题很简单…… JDK 7中的新默认行为完全混淆了我的程序(他们应该更加小心Oracle更改这种默认值……它们似乎不重要但是当你使用JTextPane显示时通常包含非常长的字母串的数据,它们并不是那么不重要 – 实际上我要提交错误报告,但是我想在/如果它们不解决它的情况下有一个解决方法)。 有什么方法可以回到以前的行为? […]

使用assert(Java等)的一些(反)模式

最后,我有一个问题要问Stack Overflow! 🙂 主要目标是Java,但我认为它主要与语言无关:如果你没有本机断言,你可以随时模拟它。 我在一家销售一套用Java编写的软件的公司工作。 代码很旧,至少可以追溯到Java 1.3,在某些地方,它显示……这是一个很大的代码库,大约有两百万行,所以我们不能一次重构它。 最近,我们将最新版本从Java 1.4语法和JVM切换到Java 1.6,保守地使用了一些新function,例如assert (我们曾经使用过DEBUG.ASSERT宏 – 我知道assert已经在1.4中引入但我们没有’ t之前使用过),generics(只有打字的集合),foreach循环,枚举等。 尽管我已经阅读了几篇关于这个主题的文章,但我对assert的使用仍然有点青睐。 然而,我看到的一些用法让我感到困惑,伤害了我的常识… ^ _ ^所以我想我应该问一些问题,看看我是否正确想要纠正的东西,或者它是否违反常规做法。 我很啰嗦,所以我为那些喜欢浏览东西的人提出了问题。 作为参考,我在SO中搜索断言java并发现了一些有趣的线程,但显然没有完全重复。 如何避免java中的“!= null”语句? 以及多少空检查就足够了? 非常相关,因为很多断言我们只检查变量是否为空。 在我们的代码中的某些地方,有空对象的用法(例如,返回new String[0] )但并非总是如此。 我们必须忍受这一点,至少是为了维护遗留代码。 Java声明中的一些好的答案也未得到充分利用 。 哦,SO表明我什么时候应该使用Debug.Assert()? 问题也是相关的(减少重复的好function!)。 首先,主要问题,今天引发了我的问题: SubDocument aSubDoc = documents.GetAt( i ); assert( aSubDoc != null ); if ( aSubDoc.GetType() == GIS_DOC ) { continue; } assert( […]