使用Jackson进行不对称序列化和反序列化

我正在使用Jackson为RESTful API序列化和反序列化数据。 我想要一个REST资源( /comments ),它允许POST注释以及获取注释列表。 这是发布到/comments的内容的(简化)示例。 {“text”:”Text”,”author”:”Paul”,”email”:”paul@example.org”} 以下是GET /comments的结果: [{“text”:”Text”,”author”:”Paul”,”emailHash”:”76w0kjKP9HpsdhBjx895Sg==”}] 由于任何人都不应该看到电子邮件地址,因此我决定只返回响应中电子邮件地址的MD5哈希值。 我创建了一个简单的POJO类Comment ,其中包含用于text , author , email和email emailHash getter和setter的字段。 现在,当我序列化结果时,我得到的是以下内容: [{“text”:”Text”,”author”:”Paul”,”email”:null,”emailHash”:”76w0kjKP9HpsdhBjx895Sg==”}] 但我真的不喜欢email在这里返回null 。 它根本不应该被包括在内。 在该字段上使用注释@JsonIgnore也将在反序列化时忽略它。 我是否必须创建两个类,例如CreationComment和ResultComment以及一个共享公共字段的超类Comment ,或者是否有一种方法可以避免创建其他类?

如何JUnit测试从文件解析的对象

我正在编写一个解析一些文件而不是处理这些文件的程序。 解析器经过了很好的测试,但我也必须测试处理部分。 问题是unit testing函数我需要来自解析器的大对象。 我不想手动创建对象(这是太多的时间)。 我的目标是重构一些过程函数,因为某些函数做了很多事情并且使用了大量的对象。 语言是java,我使用JUnit。 我试图在unit testing中保存对象并加载,但这是唯一的方法吗? 有什么建议么? 彼得,先谢谢你

使用Gson使用自定义序列化序列化枚举映射

按照使用GSON解析JSON时使用枚举的建议,我试图使用Gson序列化其键是enum的映射。 考虑以下课程: public class Main { public enum Enum { @SerializedName(“bar”) foo } private static Gson gson = new Gson(); private static void printSerialized(Object o) { System.out.println(gson.toJson(o)); } public static void main(String[] args) { printSerialized(Enum.foo); // prints “bar” List list = Arrays.asList(Enum.foo); printSerialized(list); // prints [“bar”] Map map = new HashMap(); map.put(Enum.foo, true); printSerialized(map); // […]

强制释放weblogic 10.3.4中的连接

我在oracle soa服务器(11g)上的托管服务器控制台中收到以下错误。 ——————– <Forcibly releasing inactive connection "weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection@14267" back into the connect ion pool "JDBC Data Source-0", currently reserved by: java.lang.Exception at weblogic.jdbc.common.internal.ConnectionEnv.setup(ConnectionEnv.java:318) at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:344) at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:322) at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:438) at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:317) at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:93) at weblogic.jdbc.common.internal.RmiDataSource.getPoolConnection(RmiDataSource.java:342) at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:360) at com.ura.dams.registration.dbcontrol.DBConnection.getConnection(DBConnection.java:35) at com.ura.dams.registration.dbcontrol.SubmissionUploadDBImpl.executeSelect(SubmissionUploadDBImpl.java:786) at com.ura.dams.registration.dbcontrol.SubmissionUploadDBImpl.getSubTypeAndApplTypeInd(SubmissionUploadDBImpl.java:159) at com.ura.dams.registration.businesscontrol.UploadSubmissionImpl.getAcceptanceStatus(UploadSubmissionImpl.java:829) at com.ura.dams.registration.process.RegistrationUpload.perform2(RegistrationUpload.java:121) at orabpel.registrationupload.ExecLetBxExe3.execute(ExecLetBxExe3.java:139) at com.collaxa.cube.engine.ext.bpel.common.wmp.BPELxExecWMP.__executeStatements(BPELxExecWMP.java:42) at com.collaxa.cube.engine.ext.bpel.common.wmp.BaseBPELActivityWMP.perform(BaseBPELActivityWMP.java:162) at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:2465) […]

将数字从基数10转换为N.

这段代码是我必须开发的项目的一部分。 我需要编写一个java方法,将一个数字(基数为10)转换为n base中的另一个数字。 这是该类的代码: public class converter { public int from_10_to_n(int base, int newbase) { int k = 0; String res = “”; String output = “”; do { //Below I explain what I’m doing here base /= newbase; k = base % newbase; res += String.valueOf(k); } while (base != 0); for(int i=res.length()-1; i>-1; […]

如何在Web应用程序中使用java.util.logger?

我正在尝试在Web应用程序中使用记录器。 我已经添加了FileHandler来将日志写入文件。 现在,我需要在项目中的其他类/ servlet中使用相同的处理程序,以便将来自所有类的日志写入同一文本文件。 我怎样才能做到这一点? /*** * Initialize a logger */ public static Logger logger; static { try { FileHandler fh = new FileHandler(“log.txt”, true); fh.setFormatter(new SimpleFormatter()); logger = Logger.getLogger(MyClass.class.getName()); logger.addHandler(fh); } catch (IOException e) { e.printStackTrace(); } } 我是否需要初始化记录器并在每个类中添加处理程序,如上面的代码? 还有其他技巧吗?

如果我在配置类上使用@ActiveProfiles注释而不是在定义我的bean的类上使用它,那么在Spring中会发生什么?

我正在攻读Spring Core认证,我对将配置文件用于JUnit测试有一些疑问。 所以我知道如果我按以下方式编写一个类: @Profile(“stub”) @Repository public class StubAccountRepository implements AccountRepository { private Logger logger = Logger.getLogger(StubAccountRepository.class); private Map accountsByCreditCard = new HashMap(); /** * Creates a single test account with two beneficiaries. Also logs creation * so we know which repository we are using. */ public StubAccountRepository() { logger.info(“Creating ” + getClass().getSimpleName()); Account account = […]

按下esc键取消用户输入的简单方法?

当按下Esc键时,是否有一种简单的方法可以取消JTextField中的用户输入? 我的意思是关键的监听器和数据备份。 谢谢

通过HttpURLConnection发送UTF-8字符失败

我现在已经花了一半星期天,我需要帮助: 我想使用Java HttpURLConnection将包含特殊字符UTF-8编码的字符串发送到服务器。 字符的正确编码失败。 例: strToSend:äù€ strUrlEncoded:%C3%A4 +%C3%B9 +%E2%82%AC strReceived:â⬠我的代码: urlConnection = (HttpURLConnection) new URL(“http://localhost:8080/NetworkingServer/ServerServlet”).openConnection(); urlConnection.setUseCaches(false); urlConnection.setDoOutput(true); // Triggers POST. urlConnection.setRequestProperty(“accept-charset”, “UTF-8”); urlConnection.setRequestProperty(“content-type”, “application/x-www-form-urlencoded”); String strToSend = “ä ù €”; System.out.println(“strToSend: ” + strToSend); String strUrlEncoded = URLEncoder.encode(strToSend, “UTF-8”); System.out.println(“strUrlEncoded: ” + strUrlEncoded); OutputStreamWriter writer = new OutputStreamWriter(urlConnection.getOutputStream(), “UTF-8”); writer.write(String.format(“content=%s”, strUrlEncoded)); writer.close(); 有任何想法吗?

如何使用Adobe Reader Mobile SDK 9开发pdf / epub阅读器?

如何使用Adobe Reader Mobile SDK 9为黑莓设备开发pdf / epub阅读器? 如果您对Adobe Reader mobile SDK有任何了解,请帮助我。 谢谢。