diff --git a/.project b/.project index 72f65b4..463409a 100644 --- a/.project +++ b/.project @@ -32,5 +32,6 @@ org.eclipse.wst.common.modulecore.ModuleCoreNature org.eclipse.jem.workbench.JavaEMFNature org.eclipse.buildship.core.gradleprojectnature + net.sf.eclipse.tomcat.tomcatnature diff --git a/src/main/java/cactusServer/utils/JSONConsumer.java b/src/main/java/cactusServer/utils/JSONConsumer.java index c3b4d23..5f55da4 100644 --- a/src/main/java/cactusServer/utils/JSONConsumer.java +++ b/src/main/java/cactusServer/utils/JSONConsumer.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.lang.annotation.Annotation; import java.lang.reflect.Type; @@ -16,30 +17,30 @@ import net.arnx.jsonic.JSON; import net.arnx.jsonic.JSONException; +/** + * �����g�p���Ȃ��Ȃ�Ǝv�� + * @author student + * + */ @Provider @Consumes(MediaType.APPLICATION_JSON) -public class JSONConsumer implements MessageBodyReader { - - public boolean isReadable(java.lang.Class type, - java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] - annotations, MediaType mediaType) { - return true; +public class JSONConsumer implements MessageBodyReader { + @Override + public boolean isReadable(Class type, java.lang.reflect.Type genericType, + java.lang.annotation.Annotation[] annotations, MediaType mediaType) { + // return true; + return mediaType.isCompatible(MediaType.APPLICATION_JSON_TYPE); } - @Override - public Object readFrom(Class type, Type genericType, Annotation[] annotations, MediaType mediaType, - MultivaluedMap httpHeaders, InputStream entityStream) throws IOException, WebApplicationException { - // TODO Auto-generated method stub + public Object readFrom(Class type, Type genericType, Annotation[] annotations, MediaType mediaType, + MultivaluedMap httpHeaders, InputStream entityStream) + throws IOException, WebApplicationException { try { - return JSON.decode(entityStream,genericType); + // return JSON.decode(entityStream,genericType); + return JSON.decode(entityStream, type); } catch (JSONException e) { - // TODO Auto-generated catch block - return null; - } catch (IOException e) { - // TODO Auto-generated catch block return null; } } - } \ No newline at end of file diff --git a/src/main/java/cactusServer/utils/JSONProvider.java b/src/main/java/cactusServer/utils/JSONProvider.java index 01817b9..4cab69f 100644 --- a/src/main/java/cactusServer/utils/JSONProvider.java +++ b/src/main/java/cactusServer/utils/JSONProvider.java @@ -17,22 +17,25 @@ @Provider() @Produces(MediaType.APPLICATION_JSON) public class JSONProvider implements MessageBodyWriter { - @Override - public long getSize(Object obj, Class type, Type genericType, Annotation[] annotations, MediaType mediaType) { - try { - return JSON.encode(obj).getBytes("UTF-8").length; - } catch (Exception e) { - throw new RuntimeException(e); - } - } + @Override + public long getSize(Object obj, Class type, Type genericType, Annotation[] annotations, MediaType mediaType) { + try { + return JSON.encode(obj).getBytes("UTF-8").length; + } catch (Exception e) { + throw new RuntimeException(e); + } + } - @Override - public boolean isWriteable(Class type, Type genericType, Annotation[] annotations, MediaType mediaType) { - return true; - } + @Override + public boolean isWriteable(Class type, Type genericType, Annotation[] annotations, MediaType mediaType) { + // return true; + return mediaType.isCompatible(MediaType.APPLICATION_JSON_TYPE); + } - @Override - public void writeTo(Object obj, Class type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException { - JSON.encode(obj, entityStream); - } + @Override + public void writeTo(Object obj, Class type, Type genericType, Annotation[] annotations, MediaType mediaType, + MultivaluedMap httpHeaders, OutputStream entityStream) + throws IOException, WebApplicationException { + JSON.encode(obj, entityStream); + } } \ No newline at end of file diff --git a/src/main/java/cactusServer/utils/MyParamConverter.java b/src/main/java/cactusServer/utils/MyParamConverter.java new file mode 100644 index 0000000..9ee58fe --- /dev/null +++ b/src/main/java/cactusServer/utils/MyParamConverter.java @@ -0,0 +1,24 @@ +package cactusServer.utils; + +import javax.ws.rs.ext.ParamConverter; + +import cactusServer.entities.StageModel; +import net.arnx.jsonic.JSON; + +public class MyParamConverter implements ParamConverter { +// private Class type; +// +// public MyParamConverter(Class type) { +// this.type = type; +// } + + @Override + public StageModel fromString(String value) { + return JSON.decode(value, StageModel.class); + } + + @Override + public String toString(StageModel obj) { + return JSON.encode(obj); + } +} diff --git a/src/main/java/cactusServer/utils/MyParamConverterProvider.java b/src/main/java/cactusServer/utils/MyParamConverterProvider.java new file mode 100644 index 0000000..c6edafc --- /dev/null +++ b/src/main/java/cactusServer/utils/MyParamConverterProvider.java @@ -0,0 +1,20 @@ +package cactusServer.utils; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Type; + +import javax.ws.rs.ext.ParamConverter; +import javax.ws.rs.ext.ParamConverterProvider; + +import cactusServer.entities.StageModel; + +public class MyParamConverterProvider implements ParamConverterProvider { + @Override + public ParamConverter getConverter(Class rawType, Type genericType, Annotation[] annotations) { + // return (ParamConverter) new MyParamConverter(rawType); + if (rawType.equals(StageModel.class)) { + return (ParamConverter) new MyParamConverter(); + } + return null; + } +}