Guest User

Untitled

a guest
Oct 24th, 2017
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.65 KB | None | 0 0
  1. -----AppResourceConfig----
  2. package com.veni.configapp;
  3. import org.glassfish.jersey.jackson.JacksonFeature;
  4. import org.glassfish.jersey.media.multipart.MultiPartFeature;
  5. import org.glassfish.jersey.server.ResourceConfig;
  6. public class AppResourceConfig extends ResourceConfig {
  7. public AppResourceConfig() {
  8. this.packages(
  9. "com.veni.rest;"
  10. );
  11. this.register(JacksonJsonProvider.class);
  12. this.register(JacksonFeature.class);
  13. this.register(MultiPartFeature.class);
  14. }
  15. }
  16.  
  17. ------JacksonJsonProvider--------
  18. package com.veni.configapp;
  19. import javax.ws.rs.ext.ContextResolver;
  20. import com.fasterxml.jackson.databind.DeserializationFeature;
  21. import com.fasterxml.jackson.databind.ObjectMapper;
  22. public class JacksonJsonProvider implements ContextResolver<ObjectMapper> {
  23. final ObjectMapper mapper;
  24. public JacksonJsonProvider() {
  25. this.mapper = new ObjectMapper();
  26. this.mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
  27. this.mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true);
  28. }
  29. public ObjectMapper getContext(Class<?> type) {
  30. return this.mapper;
  31. }
  32. }
  33.  
  34. ------Message------
  35. package com.veni.rest;
  36. import java.io.Serializable;
  37. public class Message implements Serializable{
  38. private static final long serialVersionUID = 1L;
  39. private boolean status;
  40. private String message;
  41. private Object data;
  42. public Message(){}
  43. public Message(String message){
  44. this.message=message;
  45. }
  46. public Message(boolean status,String message){
  47. this.status=status;
  48. this.message=message;
  49. }
  50. public Message(boolean status,String message,Object data){
  51. this.status=status;
  52. this.message=message;
  53. this.data=data;
  54. }
  55. public String getMessage() {
  56. return message;
  57. }
  58. public void setMessage(String message) {
  59. this.message = message;
  60. }
  61. public boolean isStatus() {
  62. return status;
  63. }
  64. public void setStatus(boolean status) {
  65. this.status = status;
  66. }
  67. public Object getData() {
  68. return data;
  69. }
  70. public void setData(Object data) {
  71. this.data = data;
  72. }
  73. @Override
  74. public String toString() {
  75. return "Message [status=" + status + ", message=" + message + ", data=" + data + "]";
  76. }
  77. }
  78.  
  79. ------- UploadFileService -------
  80. package com.veni.rest;
  81.  
  82. import java.io.File;
  83. import java.io.FileNotFoundException;
  84. import java.io.FileOutputStream;
  85. import java.io.IOException;
  86. import java.io.InputStream;
  87. import java.sql.Connection;
  88. import java.sql.DriverManager;
  89. import java.sql.PreparedStatement;
  90. import java.sql.ResultSet;
  91. import java.sql.SQLException;
  92. import java.util.UUID;
  93.  
  94. import javax.ws.rs.Consumes;
  95. import javax.ws.rs.GET;
  96. import javax.ws.rs.POST;
  97. import javax.ws.rs.Path;
  98. import javax.ws.rs.PathParam;
  99. import javax.ws.rs.Produces;
  100. import javax.ws.rs.core.MediaType;
  101. import javax.ws.rs.core.Response;
  102.  
  103. import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
  104. import org.glassfish.jersey.media.multipart.FormDataParam;
  105.  
  106. import com.amazonaws.util.IOUtils;
  107.  
  108. @Path("/test")
  109. public class UploadFileService {
  110.  
  111. @GET
  112. @Path("/getStatus")
  113. @Produces(MediaType.APPLICATION_JSON)
  114. public Response getStatus(){
  115. boolean status= false;
  116. try {
  117. Class.forName("com.mysql.jdbc.Driver");
  118. Connection conn = DriverManager.getConnection("jdbc:mysql://hostname:port/test_db?useSSL=false","root", "root");
  119. PreparedStatement ps= conn.prepareStatement("selct status from testTable where id=1");
  120. ResultSet rs = ps.executeQuery();
  121. if(rs.next()){
  122. status=rs.getBoolean("status");
  123. }
  124. } catch (ClassNotFoundException e) {
  125. e.printStackTrace();
  126. } catch (SQLException e) {
  127. e.printStackTrace();
  128. }
  129. return Response.status(200).entity(new Message(status,"dome")).build();
  130. }
  131.  
  132. @GET
  133. @Path("/updateStatus/{status}")
  134. @Produces(MediaType.APPLICATION_JSON)
  135. public Response updateStatus(@PathParam("status")boolean status){
  136. try {
  137. Class.forName("com.mysql.jdbc.Driver");
  138. Connection conn = DriverManager.getConnection("jdbc:mysql://hostname:port/test_db?useSSL=false","root", "root");
  139. PreparedStatement ps= conn.prepareStatement("updtae testTable set status = ? where id=1");
  140. ps.setBoolean(1, status);
  141. ps.executeUpdate();
  142. } catch (ClassNotFoundException e) {
  143. e.printStackTrace();
  144. } catch (SQLException e) {
  145. e.printStackTrace();
  146. }
  147. return Response.status(200).entity(new Message(status,"dome")).build();
  148. }
  149.  
  150. @POST
  151. @Path("/upload")
  152. @Produces(MediaType.APPLICATION_JSON)
  153. @Consumes(MediaType.MULTIPART_FORM_DATA)
  154. public Response uploadPhoto(@FormDataParam("file") InputStream imageStream,
  155. @FormDataParam("file") FormDataContentDisposition fileFormDataContentDisposition){
  156. File f= new File("/home/veni/Documents/dhaval_bhoot/images/"+getId()+".jpg");
  157. FileOutputStream fos;
  158. try {
  159. fos = new FileOutputStream(f);
  160. byte[] imageBytes = IOUtils.toByteArray(imageStream);
  161. fos.write(imageBytes, 0, imageBytes.length);
  162. } catch (FileNotFoundException e) {
  163. e.printStackTrace();
  164. } catch (IOException e) {
  165. e.printStackTrace();
  166. }
  167. return Response.status(200).entity(new Message(true,"Image uploaded successfully.")).build();
  168. }
  169. private String getId() {
  170. String[] idsElement = UUID.randomUUID().toString().split("-");
  171. return idsElement[3] + System.currentTimeMillis() + idsElement[4];
  172. }
  173. }
  174.  
  175. ------- web.xml ---------
  176. <web-app id="WebApp_ID" version="2.4"
  177. xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  178. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  179. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  180. <display-name>Restful Web Application</display-name>
  181.  
  182. <servlet>
  183. <servlet-name>jersey-serlvet</servlet-name>
  184. <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
  185. <init-param>
  186. <param-name>javax.ws.rs.Application</param-name>
  187. <param-value>com.veni.configapp.AppResourceConfig</param-value>
  188. </init-param>
  189. <load-on-startup>1</load-on-startup>
  190. </servlet>
  191. <servlet-mapping>
  192. <servlet-name>jersey-serlvet</servlet-name>
  193. <url-pattern>/rest/*</url-pattern>
  194. </servlet-mapping>
  195.  
  196. <!-- <servlet>
  197. <servlet-name>jersey-serlvet</servlet-name>
  198. <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
  199. <init-param>
  200. <param-name>com.sun.jersey.config.property.packages</param-name>
  201. <param-value>com.veni.rest</param-value>
  202. </init-param>
  203. <load-on-startup>1</load-on-startup>
  204. </servlet>
  205.  
  206. <servlet-mapping>
  207. <servlet-name>jersey-serlvet</servlet-name>
  208. <url-pattern>/rest/*</url-pattern>
  209. </servlet-mapping> -->
  210. </web-app>
  211.  
  212. -------pom.xml---------
  213. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  214. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  215. <modelVersion>4.0.0</modelVersion>
  216. <groupId>com.veni.common</groupId>
  217. <artifactId>VeniImageUplodDemo</artifactId>
  218. <packaging>war</packaging>
  219. <version>1.0-SNAPSHOT</version>
  220. <name>VeniImageUplodDemo Maven Webapp</name>
  221. <url>http://maven.apache.org</url>
  222.  
  223. <properties>
  224. <jersey.version>2.16</jersey.version>
  225. <jackson.version>2.5.1</jackson.version>
  226. <mavenwar.version>2.3</mavenwar.version>
  227. </properties>
  228.  
  229. <dependencies>
  230. <dependency>
  231. <groupId>org.glassfish.jersey.core</groupId>
  232. <artifactId>jersey-server</artifactId>
  233. <version>${jersey.version}</version>
  234. </dependency>
  235. <dependency>
  236. <groupId>org.glassfish.jersey.bundles</groupId>
  237. <artifactId>jaxrs-ri</artifactId>
  238. <version>${jersey.version}</version>
  239. </dependency>
  240. <dependency>
  241. <groupId>org.glassfish.jersey.containers</groupId>
  242. <artifactId>jersey-container-servlet</artifactId>
  243. <version>${jersey.version}</version>
  244. </dependency>
  245. <dependency>
  246. <groupId>org.glassfish.jersey.media</groupId>
  247. <artifactId>jersey-media-multipart</artifactId>
  248. <version>${jersey.version}</version>
  249. </dependency>
  250. <dependency>
  251. <groupId>org.glassfish.jersey.media</groupId>
  252. <artifactId>jersey-media-json-jackson</artifactId>
  253. <version>${jersey.version}</version>
  254. <exclusions>
  255. <!-- <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId>
  256. </exclusion> <exclusion> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId>
  257. </exclusion> -->
  258. </exclusions>
  259. </dependency>
  260.  
  261. <dependency>
  262. <groupId>com.fasterxml.jackson.jaxrs</groupId>
  263. <artifactId>jackson-jaxrs-json-provider</artifactId>
  264. <version>${jackson.version}</version>
  265. </dependency>
  266. <dependency>
  267. <groupId>com.fasterxml.jackson.core</groupId>
  268. <artifactId>jackson-annotations</artifactId>
  269. <version>${jackson.version}</version>
  270. </dependency>
  271.  
  272. <!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->
  273. <dependency>
  274. <groupId>javax.ws.rs</groupId>
  275. <artifactId>javax.ws.rs-api</artifactId>
  276. <version>2.0.1</version>
  277. </dependency>
  278.  
  279. <dependency>
  280. <groupId>com.amazonaws</groupId>
  281. <artifactId>aws-java-sdk-s3</artifactId>
  282. <version>1.11.22</version>
  283. </dependency>
  284. <dependency>
  285. <groupId>mysql</groupId>
  286. <artifactId>mysql-connector-java</artifactId>
  287. <version>5.1.38</version>
  288. </dependency>
  289. </dependencies>
  290. <build>
  291. <finalName>VeniImageUplodDemo</finalName>
  292. <plugins>
  293. <plugin>
  294. <artifactId>maven-compiler-plugin</artifactId>
  295. <configuration>
  296. <source>1.8</source>
  297. <target>1.8</target>
  298. </configuration>
  299. </plugin>
  300. <plugin>
  301. <groupId>org.apache.maven.plugins</groupId>
  302. <artifactId>maven-war-plugin</artifactId>
  303. <version>${mavenwar.version}</version>
  304. </plugin>
  305. </plugins>
  306. </build>
  307. </project>
Add Comment
Please, Sign In to add comment