Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -----AppResourceConfig----
- package com.veni.configapp;
- import org.glassfish.jersey.jackson.JacksonFeature;
- import org.glassfish.jersey.media.multipart.MultiPartFeature;
- import org.glassfish.jersey.server.ResourceConfig;
- public class AppResourceConfig extends ResourceConfig {
- public AppResourceConfig() {
- this.packages(
- "com.veni.rest;"
- );
- this.register(JacksonJsonProvider.class);
- this.register(JacksonFeature.class);
- this.register(MultiPartFeature.class);
- }
- }
- ------JacksonJsonProvider--------
- package com.veni.configapp;
- import javax.ws.rs.ext.ContextResolver;
- import com.fasterxml.jackson.databind.DeserializationFeature;
- import com.fasterxml.jackson.databind.ObjectMapper;
- public class JacksonJsonProvider implements ContextResolver<ObjectMapper> {
- final ObjectMapper mapper;
- public JacksonJsonProvider() {
- this.mapper = new ObjectMapper();
- this.mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- this.mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true);
- }
- public ObjectMapper getContext(Class<?> type) {
- return this.mapper;
- }
- }
- ------Message------
- package com.veni.rest;
- import java.io.Serializable;
- public class Message implements Serializable{
- private static final long serialVersionUID = 1L;
- private boolean status;
- private String message;
- private Object data;
- public Message(){}
- public Message(String message){
- this.message=message;
- }
- public Message(boolean status,String message){
- this.status=status;
- this.message=message;
- }
- public Message(boolean status,String message,Object data){
- this.status=status;
- this.message=message;
- this.data=data;
- }
- public String getMessage() {
- return message;
- }
- public void setMessage(String message) {
- this.message = message;
- }
- public boolean isStatus() {
- return status;
- }
- public void setStatus(boolean status) {
- this.status = status;
- }
- public Object getData() {
- return data;
- }
- public void setData(Object data) {
- this.data = data;
- }
- @Override
- public String toString() {
- return "Message [status=" + status + ", message=" + message + ", data=" + data + "]";
- }
- }
- ------- UploadFileService -------
- package com.veni.rest;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.UUID;
- import javax.ws.rs.Consumes;
- import javax.ws.rs.GET;
- import javax.ws.rs.POST;
- import javax.ws.rs.Path;
- import javax.ws.rs.PathParam;
- import javax.ws.rs.Produces;
- import javax.ws.rs.core.MediaType;
- import javax.ws.rs.core.Response;
- import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
- import org.glassfish.jersey.media.multipart.FormDataParam;
- import com.amazonaws.util.IOUtils;
- @Path("/test")
- public class UploadFileService {
- @GET
- @Path("/getStatus")
- @Produces(MediaType.APPLICATION_JSON)
- public Response getStatus(){
- boolean status= false;
- try {
- Class.forName("com.mysql.jdbc.Driver");
- Connection conn = DriverManager.getConnection("jdbc:mysql://hostname:port/test_db?useSSL=false","root", "root");
- PreparedStatement ps= conn.prepareStatement("selct status from testTable where id=1");
- ResultSet rs = ps.executeQuery();
- if(rs.next()){
- status=rs.getBoolean("status");
- }
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return Response.status(200).entity(new Message(status,"dome")).build();
- }
- @GET
- @Path("/updateStatus/{status}")
- @Produces(MediaType.APPLICATION_JSON)
- public Response updateStatus(@PathParam("status")boolean status){
- try {
- Class.forName("com.mysql.jdbc.Driver");
- Connection conn = DriverManager.getConnection("jdbc:mysql://hostname:port/test_db?useSSL=false","root", "root");
- PreparedStatement ps= conn.prepareStatement("updtae testTable set status = ? where id=1");
- ps.setBoolean(1, status);
- ps.executeUpdate();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return Response.status(200).entity(new Message(status,"dome")).build();
- }
- @POST
- @Path("/upload")
- @Produces(MediaType.APPLICATION_JSON)
- @Consumes(MediaType.MULTIPART_FORM_DATA)
- public Response uploadPhoto(@FormDataParam("file") InputStream imageStream,
- @FormDataParam("file") FormDataContentDisposition fileFormDataContentDisposition){
- File f= new File("/home/veni/Documents/dhaval_bhoot/images/"+getId()+".jpg");
- FileOutputStream fos;
- try {
- fos = new FileOutputStream(f);
- byte[] imageBytes = IOUtils.toByteArray(imageStream);
- fos.write(imageBytes, 0, imageBytes.length);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return Response.status(200).entity(new Message(true,"Image uploaded successfully.")).build();
- }
- private String getId() {
- String[] idsElement = UUID.randomUUID().toString().split("-");
- return idsElement[3] + System.currentTimeMillis() + idsElement[4];
- }
- }
- ------- web.xml ---------
- <web-app id="WebApp_ID" version="2.4"
- xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <display-name>Restful Web Application</display-name>
- <servlet>
- <servlet-name>jersey-serlvet</servlet-name>
- <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
- <init-param>
- <param-name>javax.ws.rs.Application</param-name>
- <param-value>com.veni.configapp.AppResourceConfig</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>jersey-serlvet</servlet-name>
- <url-pattern>/rest/*</url-pattern>
- </servlet-mapping>
- <!-- <servlet>
- <servlet-name>jersey-serlvet</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.veni.rest</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>jersey-serlvet</servlet-name>
- <url-pattern>/rest/*</url-pattern>
- </servlet-mapping> -->
- </web-app>
- -------pom.xml---------
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.veni.common</groupId>
- <artifactId>VeniImageUplodDemo</artifactId>
- <packaging>war</packaging>
- <version>1.0-SNAPSHOT</version>
- <name>VeniImageUplodDemo Maven Webapp</name>
- <url>http://maven.apache.org</url>
- <properties>
- <jersey.version>2.16</jersey.version>
- <jackson.version>2.5.1</jackson.version>
- <mavenwar.version>2.3</mavenwar.version>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.glassfish.jersey.core</groupId>
- <artifactId>jersey-server</artifactId>
- <version>${jersey.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.bundles</groupId>
- <artifactId>jaxrs-ri</artifactId>
- <version>${jersey.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.containers</groupId>
- <artifactId>jersey-container-servlet</artifactId>
- <version>${jersey.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.media</groupId>
- <artifactId>jersey-media-multipart</artifactId>
- <version>${jersey.version}</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.media</groupId>
- <artifactId>jersey-media-json-jackson</artifactId>
- <version>${jersey.version}</version>
- <exclusions>
- <!-- <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId>
- </exclusion> <exclusion> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId>
- </exclusion> -->
- </exclusions>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.jaxrs</groupId>
- <artifactId>jackson-jaxrs-json-provider</artifactId>
- <version>${jackson.version}</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-annotations</artifactId>
- <version>${jackson.version}</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->
- <dependency>
- <groupId>javax.ws.rs</groupId>
- <artifactId>javax.ws.rs-api</artifactId>
- <version>2.0.1</version>
- </dependency>
- <dependency>
- <groupId>com.amazonaws</groupId>
- <artifactId>aws-java-sdk-s3</artifactId>
- <version>1.11.22</version>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.38</version>
- </dependency>
- </dependencies>
- <build>
- <finalName>VeniImageUplodDemo</finalName>
- <plugins>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>${mavenwar.version}</version>
- </plugin>
- </plugins>
- </build>
- </project>
Add Comment
Please, Sign In to add comment