@XmlRootElement
public class Todo {
private String s = "test";
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
}
Run Code Online (Sandbox Code Playgroud)
和服务:
@Path("/test")
public class Service {
@GET
@Produces({MediaType.APPLICATION_JSON })
public List<Todo> getAllGadgets() {
return Arrays.asList(new Todo[] { new Todo() });
}
}
Run Code Online (Sandbox Code Playgroud)
我的web.xml:
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.test</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
如果我将MediaType.APPLICATION_XML设置为生成注释,则所有这些都有效.但对于JSON,我得到以下异常:
严重:映射异常响应:500(内部服务器错误)javax.ws.rs.WebApplicationException:com.sun.jersey.api.MessageException:Java类java.util.Arrays $ ArrayList和Java类型java的消息体编写器找不到.util.List和MIME媒体类型application/json
我使用Jersey 1.6,根据教程,JSON格式应该可以在没有任何额外编程的情况下使用JAXB.怎么了?
我需要压缩和解压缩字符串
这是代码:
public static byte[] ZipStr(String str)
{
using (MemoryStream output = new MemoryStream())
using (DeflateStream gzip = new DeflateStream(output, CompressionMode.Compress))
using (StreamWriter writer = new StreamWriter(gzip))
{
writer.Write(str);
return output.ToArray();
}
}
Run Code Online (Sandbox Code Playgroud)
和
public static string UnZipStr(byte[] input)
{
using (MemoryStream inputStream = new MemoryStream(input))
using (DeflateStream gzip = new DeflateStream(inputStream, CompressionMode.Decompress))
using (StreamReader reader = new StreamReader(gzip))
{
reader.ReadToEnd();
return System.Text.Encoding.UTF8.GetString(inputStream.ToArray());
}
}
Run Code Online (Sandbox Code Playgroud)
似乎UnZipStr方法中存在错误.有人能帮助我吗?
我有一段代码(简化):
if(reentrantLockObject.isLocked()) {
reentrantLockObject.unlock();
}
Run Code Online (Sandbox Code Playgroud)
其中reentrantLockObject是java.util.concurrent.locks.ReentrantLock.有时我得到IllegalMonitorStateException.它接缝在check和unlock()调用之间释放了锁.如何防止此异常?
我编写了使用Jersey Client API向REST服务发出GET请求的客户端.响应是对象的集合,我需要反序列化它.这是我的代码:
ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING,
Boolean.TRUE);
Client client = Client.create(clientConfig);
WebResource r = client
.resource("http://localhost:8080/rest/gadgets");
Run Code Online (Sandbox Code Playgroud)
和表示"小工具"模型的类(使用@XmlRootElement进行JAXB处理注释):
@XmlRootElement
public class Gadget {
private String url;
private String title;
private String name;
public Gadget() {
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getName() {
return name;
}
public void setName(String …Run Code Online (Sandbox Code Playgroud) 我在websphere5下有一个简单的Web应用程序.在appDir\WEB-INF\classes\我有这些文件:
main.xslttemplates.xsltmain.xslt 包含指令
<xsl:import href="templates.xsl" />
Run Code Online (Sandbox Code Playgroud)
但main.xslt在Java代码中使用时应用程序失败.如果它们都在同一个文件夹(WEB-INF\classes\)中,我应该如何指定导入的XSL文件的路径?
例外文本:
java.io.FileNotFoundException:d:\ Program Files\WebSphere\AppServer1\templates.xsl(系统找不到指定的文件.)
当有人通过任务管理器或任务杀控制台命令杀死我的应用程序(java,但这并不重要)时,我如何捕获?
我知道我无法在我的应用程序中捕捉到这一点,但也许我可以通过操作系统(当然是 Windows)的一些钩子来做到这一点。也许easyhook库(http://www.codeplex.com/easyhook)可以帮助我,但我在那里找不到例子。我们的应用程序经常在客户服务器上死掉,我只想知道是谁(或什么)杀死了它。我们确定这不是应用程序问题,似乎 java.exe 进程已从任务管理器中终止
我的申请时间超过3天.我可以在日志中看到应用程序执行一些SQL查询的时刻,这花了很多时间,可能是因为一些数据库锁.
我听说有这种情况的查询.因此,我需要能够询问所有查询,例如超过30分钟.可能吗?
据我所知,使用空字符串作为参数的XSLT函数document()应该读取当前的XSLT文档.但是以下代码不起作用:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<state>test2</state>
<xsl:template match="/">
test1
<xsl:value-of select="document('')/*/state"/>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
当我将这个XSLT应用于某些XML(仅作为示例)时,我只有"test1"作为输出.为什么排队
<xsl:value-of select="document('')/*/state"/>
Run Code Online (Sandbox Code Playgroud)
不打印"test2"?
控制台java应用程序 有人通过任务管理器杀死java.exe进程.在申请终止之前,我如何写入记录某些信息?
Thread.currentThread().setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
public void uncaughtException(Thread t, Throwable e) { ..... }
});
Run Code Online (Sandbox Code Playgroud)
要么
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() { ..... }
});
Run Code Online (Sandbox Code Playgroud)
不要在这种情况下执行