Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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 无法从J2SE平台进行PUT和POST(RESTLET版本3.0-M1)_Java_Json_Restlet - Fatal编程技术网

Java 无法从J2SE平台进行PUT和POST(RESTLET版本3.0-M1)

Java 无法从J2SE平台进行PUT和POST(RESTLET版本3.0-M1),java,json,restlet,Java,Json,Restlet,我正在与GWT和J2SE客户一起进行一个项目。GWT部分工作得很好,但是现在J2SE客户端出现了问题 “服务器了解请求实体的内容类型和 请求实体的语法正确,但无法处理 “包含的说明” “序列化表示必须具有以下媒体类型: 应用程序/x-java-serialized-object或此: 应用程序/x-java-serialized-object+xml” 此代码在几个月前/几个版本前正常工作。。。GET工作时,PUT和POST都会产生此错误这里怎么了? 这里有一个非常简单的测试用例 //共享接口

我正在与GWT和J2SE客户一起进行一个项目。GWT部分工作得很好,但是现在J2SE客户端出现了问题

“服务器了解请求实体的内容类型和 请求实体的语法正确,但无法处理 “包含的说明”

“序列化表示必须具有以下媒体类型: 应用程序/x-java-serialized-object或此: 应用程序/x-java-serialized-object+xml”

此代码在几个月前/几个版本前正常工作。。。GET工作时,PUT和POST都会产生此错误这里怎么了?

这里有一个非常简单的测试用例

//共享接口

public interface J2SeClientServerResourceInt
{
   @Post("json")
   public J2seStatusDto postJ2seStatus(J2seStatusDto pJ2seStatusDto);
}
//爪哇豆

  public class J2seStatusDto implements Serializable
    {
        private static final long serialVersionUID = 6901448809350740172L;

        private String mTest;

        public J2seStatusDto()
        {
        }

        public J2seStatusDto(String pTest)
        {
            setTest(pTest); 
        }

        public String getTest()
        {
            return mTest;
        }

        public void setTest(String pTest)
        {
            mTest = pTest;
        }
    }
//服务器

public class J2seServerResource extends ClaireServerResource implements J2SeServerResourceInt
{
    @Override
    public J2seStatusDto postJ2seStatusDto(J2seStatusDto pJ2seStatusDto)
    {
        return pJ2seStatusDto;
    }
}
//J2SE客户端

public class ClaireJsSeTestClient
{
    public static void main(String[] args)
    {
        Reference lReference = new Reference("http://localhost:8888//rest/j2se");
        ClientResource lClientResource = new ClientResource(lReference);
        lClientResource.accept(MediaType.APPLICATION_JSON);
        J2SeServerResourceInt lJ2SeServerResource = lClientResource.wrap(J2SeServerResourceInt.class);
        J2seStatusDto lJ2seStatusDto = new J2seStatusDto("TEST");
        J2seStatusDto lJ2seResultDto = lJ2SeServerResource.postJ2seStatusDto(lJ2seStatusDto);
    }
}
//Maven J2Se客户端

   <dependencies>
        <dependency>
            <groupId>org.restlet.jse</groupId>
            <artifactId>org.restlet</artifactId>
            <version>3.0-M1</version>
        </dependency>
        <dependency>
            <groupId>org.restlet.jse</groupId>
            <artifactId>org.restlet.ext.jackson</artifactId>
            <version>3.0-M1</version>
        </dependency>
    </dependencies>

org.restlet.jse
org.restlet
3.0-M1
org.restlet.jse
org.restlet.ext.jackson
3.0-M1
//Maven GAE服务器

  <dependency>
        <groupId>org.restlet.gae</groupId>
        <artifactId>org.restlet</artifactId>
        <version>3.0-M1</version>
    </dependency>
    <dependency>
        <groupId>org.restlet.gae</groupId>
        <artifactId>org.restlet.ext.servlet</artifactId>
        <version>3.0-M1</version>
    </dependency>
    <dependency>
        <groupId>org.restlet.gae</groupId>
        <artifactId>org.restlet.ext.jackson</artifactId>
        <version>3.0-M1</version>
    </dependency>
    <dependency>
        <groupId>org.restlet.gae</groupId>
        <artifactId>org.restlet.ext.gwt</artifactId>
        <version>3.0-M1</version>
    </dependency>
    <dependency>
        <groupId>org.restlet.gwt</groupId>
        <artifactId>org.restlet</artifactId>
        <version>3.0-M1</version>
        <scope>compile</scope>
    </dependency>

org.restlet.gae
org.restlet
3.0-M1
org.restlet.gae
org.restlet.ext.servlet
3.0-M1
org.restlet.gae
org.restlet.ext.jackson
3.0-M1
org.restlet.gae
org.restlet.ext.gwt
3.0-M1
org.restlet.gwt
org.restlet
3.0-M1
编译

蒂埃里·博伊洛修复了我们的问题(错误)

由于GAE平台的限制(不支持分块编码),您必须首先指定缓冲请求实体

cr.setRequestEntityBuffering(true);

感谢restlet.com提供的强大支持

在J2seServerResource中调试断点时,PUT请求到达服务器时负载为NULL,POST甚至没有到达服务器(并给出错误消息)。GET请求工作正常…使用Chrome REST控制台测试时,服务器工作正常,问题出在J2SE客户机上。。。从JSON切换到XML会得到相同的结果。。。