Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java Webstart上运行时,Jersey客户端不工作_Java_Client_Jersey_Java Web Start - Fatal编程技术网

在Java Webstart上运行时,Jersey客户端不工作

在Java Webstart上运行时,Jersey客户端不工作,java,client,jersey,java-web-start,Java,Client,Jersey,Java Web Start,我有一个运行Jersey Rest webservices的Glassfish 3服务器 我有一个作为客户端运行的swing应用程序 我可以做我编码应用程序要做的一切。(添加、删除、编辑、查看)一切正常 我想用JavaWebStart发布swing应用程序 在netbeans中,我使用webstart运行应用程序,并出现以下错误: com.sun.jersey.api.client.ClientHandlerException: A message body reader for Java cl

我有一个运行Jersey Rest webservices的Glassfish 3服务器

我有一个作为客户端运行的swing应用程序

我可以做我编码应用程序要做的一切。(添加、删除、编辑、查看)一切正常

我想用JavaWebStart发布swing应用程序

在netbeans中,我使用webstart运行应用程序,并出现以下错误:

com.sun.jersey.api.client.ClientHandlerException: A message body reader for Java class       java.util.List, and Java type java.util.List<za.co.lunginstitute.restbeans.Patient>, and MIME media  type application/json was not found
    at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:561)
    at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:535)
    at za.co.lunginstitute.restclient.BaseDAO.get(BaseDAO.java:37)
    at za.co.lunginstitute.restclient.PatientsDAO.findAll(PatientsDAO.java:39)
    at     za.co.lunginstitute.gregg.xrays.gui.models.PatientDataModel.loadAll(PatientDataModel.java:37)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at za.co.lunginstitute.gregg.xrays.workers.BackgroundRunner$BGRunner.doInBackground(BackgroundRunner.java:97)
    at javax.swing.SwingWorker$1.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at javax.swing.SwingWorker.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
com.sun.jersey.api.client.clienthandler异常:未找到Java类Java.util.List、Java类型Java.util.List和MIME媒体类型application/json的消息体读取器
位于com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:561)
在com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:535)上
位于za.co.lunginstitute.restclient.BaseDAO.get(BaseDAO.java:37)
位于za.co.lunginstitute.restclient.PatientsDAO.findAll(PatientsDAO.java:39)
位于za.co.lunginstitute.gregg.xray.gui.models.PatientDataModel.loadAll(PatientDataModel.java:37)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
位于za.co.lunginstitute.gregg.xray.workers.BackgroundRunner$BGRunner.doInBackground(BackgroundRunner.java:97)
位于javax.swing.SwingWorker$1.call(未知源)
位于java.util.concurrent.FutureTask$Sync.innerRun(未知源)
位于java.util.concurrent.FutureTask.run(未知源)
位于javax.swing.SwingWorker.run(未知源)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源)
位于java.lang.Thread.run(未知源)
我在JavaWS6和JavaWS7下运行了它。我使用JDK和JRE。 只要我远离webstart,一切正常

我试着从命令行将应用程序作为普通java运行,然后作为javaws运行。Java可以工作,但是javaws给了我这个错误

我确实检查了类路径,检查了两次和三次。所有的图书馆都有

我用了小提琴,一切正常。建立连接,返回数据,然后出现此错误-仅当使用webstart时。

找到“解决方案”:

我的代码中没有最后一行。添加它之后,我再也不会得到异常

奇怪的是,它以java.exe的形式运行应用程序,而不是以javaws.exe的形式运行

现在我在代码中进一步得到了这个错误:

Caused by: org.codehaus.jackson.map.JsonMappingException: Can not construct instance of  java.util.Date from String value '1980-01-01 CAT': not a valid representation (error: Can not parse  date "1980-01-01 CAT": not compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ",  "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))
 at [Source:   com.sun.jersey.client.apache.ApacheHttpClientHandler$HttpClientResponseInputStream@140fbd9; line: 1,  column: 143] (through reference chain: za.co.lunginstitute.restbeans.Xray["xraydate"])
    at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163)
at org.codehaus.jackson.map.deser.StdDeserializationContext.weirdStringException(StdDeserializationContext.java:243)
at org.codehaus.jackson.map.deser.std.StdDeserializer._parseDate(StdDeserializer.java:553)
at org.codehaus.jackson.map.deser.std.DateDeserializer.deserialize(DateDeserializer.java:28)
at org.codehaus.jackson.map.deser.std.DateDeserializer.deserialize(DateDeserializer.java:19)
at org.codehaus.jackson.map.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:299)
at org.codehaus.jackson.map.deser.SettableBeanProperty$MethodProperty.deserializeAndSet(SettableBeanProperty.java:414)
at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:697)
at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580)
at org.codehaus.jackson.map.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:217)
at org.codehaus.jackson.map.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:194)
at org.codehaus.jackson.map.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:30)
at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2695)
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1308)
at org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419)
at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:565)
... 16 more
我确实使用了这个:

@XmlJavaTypeAdapter(SimpleDateAdapter.class)
关于类的get方法。同样,这在作为java运行时有效,而不是在javaws中


我是否遗漏了一些东西,一些Jersey配置设置。

尝试查看我之前的答案:服务器返回正确的响应,我可以在fiddler中看到JSON。我在类路径上有所有的Jersey库——整个netbeans Jersey 1.13库。你在那页上看过我的答案了吗?您很可能缺少
json
库。是的,我确实找过了。双重确保jersey json在类路径中。然后再检查一遍。它就在那里。检查javaws面板-它显示在那里。该应用程序在使用java而不是javaws运行时工作。它加载并显示我的界面。我通过glassfish进行身份验证,得到一个对象列表,该对象由于上述错误而失败。问题解决了。使用:config.getClasses().add(JacksonJaxbJsonProvider.class);
@XmlJavaTypeAdapter(SimpleDateAdapter.class)