commit 2c0b705ab636deecd2fd87dad7b8a39368e335ba Author: fbenoist68 Date: Thu Nov 16 00:39:20 2023 +0100 first commit diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..61c0765 Binary files /dev/null and b/.DS_Store differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0121050 --- /dev/null +++ b/.gitignore @@ -0,0 +1,42 @@ +# Dossiers générés par l'IDE +.idea/ + +# Fichiers de configuration spécifiques à l'IDE +*.iml +*.iws +*.ipr + +# Dossiers générés par Maven +target/ + +# Fichiers de configuration de Maven +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +release.properties +dependency-reduced-pom.xml +buildNumber.properties + +# Fichiers générés par Tomcat +*.log +*.tmp +work/ +temp/ +logs/ + +# Dossiers spécifiques à Eclipse +.settings/ + +# Fichiers spécifiques à Eclipse +.classpath +.project + +# Dossiers spécifiques à NetBeans +nb-configuration/ +nbproject/private/ + +# Fichiers spécifiques à NetBeans +nb-configuration.xml + +# Dossiers spécifiques à VS Code +.vscode/ diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..29ebc22 --- /dev/null +++ b/pom.xml @@ -0,0 +1,76 @@ + + 4.0.0 + com.example + hdpos + war + 1.0-SNAPSHOT + hdpos Maven Webapp + http://maven.apache.org + + + junit + junit + 3.8.1 + test + + + + + com.oracle.database.jdbc + ojdbc10 + 19.8.0.0 + + + + + org.glassfish.jersey.core + jersey-server + 2.41 + + + + org.glassfish.jersey.containers + jersey-container-servlet + 2.41 + + + + org.glassfish.jersey.inject + jersey-hk2 + 2.41 + + + + javax.servlet + javax.servlet-api + 4.0.1 + provided + + + + + com.fasterxml.jackson.core + jackson-databind + 2.13.0 + + + + + + hdpos + + + org.codehaus.cargo + cargo-maven2-plugin + 1.8.3 + + + tomcat9x + embedded + + + + + + diff --git a/src/main/java/com/example/CorsFilters.java b/src/main/java/com/example/CorsFilters.java new file mode 100644 index 0000000..853eaa7 --- /dev/null +++ b/src/main/java/com/example/CorsFilters.java @@ -0,0 +1,50 @@ +package com.example; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletResponse; // Importez cette classe + +import java.io.IOException; + +public class CorsFilters implements Filter { + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException { + + // Utilisez HttpServletResponse au lieu de ServletResponse + HttpServletResponse httpResponse = (HttpServletResponse) response; + + // Autoriser l'accès depuis n'importe quelle origine + httpResponse.setHeader("Access-Control-Allow-Origin", "*"); + + // Autoriser les méthodes HTTP spécifiées (GET, POST, OPTIONS, PUT, DELETE) + httpResponse.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS, PUT, DELETE"); + + // Autoriser les en-têtes spécifiés dans la requête + httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type"); + + // Permettre l'envoi de cookies (si nécessaire) + httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); + + // Durée de validité des résultats préalables (pré-vérifications OPTIONS) + httpResponse.setHeader("Access-Control-Max-Age", "3600"); + + // Continuer la chaîne de filtres + chain.doFilter(request, httpResponse); + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + // Initialisation du filtre + } + + @Override + public void destroy() { + // Destruction du filtre + } +} diff --git a/src/main/java/com/example/services/DatabaseConnection.java b/src/main/java/com/example/services/DatabaseConnection.java new file mode 100644 index 0000000..39fc7c2 --- /dev/null +++ b/src/main/java/com/example/services/DatabaseConnection.java @@ -0,0 +1,26 @@ +package com.example.services; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class DatabaseConnection implements AutoCloseable { + + private Connection connection; + + public DatabaseConnection(String dbHost, String username, String password) throws SQLException { + // Initialiser votre connexion à la base de données ici + connection = DriverManager.getConnection("jdbc:oracle:thin:@" + dbHost + ":1521/XSTORE", username, password); + } + + public Connection getConnection() { + return connection; + } + + @Override + public void close() throws SQLException { + if (connection != null && !connection.isClosed()) { + connection.close(); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/example/services/DatabaseConnectionDS.java b/src/main/java/com/example/services/DatabaseConnectionDS.java new file mode 100644 index 0000000..6148942 --- /dev/null +++ b/src/main/java/com/example/services/DatabaseConnectionDS.java @@ -0,0 +1,28 @@ +package com.example.services; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class DatabaseConnectionDS implements AutoCloseable { + + private Connection connection; + + public DatabaseConnectionDS(String username, String password) throws SQLException { + // Initialiser votre connexion à la base de données ici + // jdbc:oracle:thin:@v-aspd-b01-ii-d.adic.lan:1521/IASPDI + // jdbc:oracle:thin:@v-aspd-b01-irdc.adic.lan:1521/MASPDI + connection = DriverManager.getConnection("jdbc:oracle:thin:@v-aspd-b01-irdc.adic.lan:1521/MASPDI", username, password); + } + + public Connection getConnection() { + return connection; + } + + @Override + public void close() throws SQLException { + if (connection != null && !connection.isClosed()) { + connection.close(); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/example/services/DatabaseService.java b/src/main/java/com/example/services/DatabaseService.java new file mode 100644 index 0000000..34803cc --- /dev/null +++ b/src/main/java/com/example/services/DatabaseService.java @@ -0,0 +1,52 @@ +package com.example.services; + +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +@Path("/database") +public class DatabaseService { + + @GET + @Path("/replication") + @Produces(MediaType.APPLICATION_JSON) + public Response getCount(@QueryParam("dbHost") String dbHost) { + + if (dbHost == null) { + return Response.status(Response.Status.BAD_REQUEST).entity("{\"error\":\"dbHost parameter is required\"}").build(); + } + + DriverManager.setLoginTimeout(5); // Définir le timeout à 5 secondes + + try (DatabaseConnection databaseConnection = new DatabaseConnection(dbHost, "repqueue", "repqueue")) { + String query = "SELECT COUNT(*) FROM CTL_REPLICATION_QUEUE"; + + try (PreparedStatement statement = databaseConnection.getConnection().prepareStatement(query); + ResultSet resultSet = statement.executeQuery()) { + + if (resultSet.next()) { + long count = resultSet.getLong(1); + // Construction manuelle de la réponse JSON + String jsonResponse = "{\"count\":" + count + "}"; + return Response.ok(jsonResponse).build(); + } + } + } catch (SQLException e) { + e.printStackTrace(); // Gérer les exceptions correctement dans un environnement de production + + // Construction de la réponse JSON en cas d'erreur + String errorResponse = "{\"error\":\"" + e.getMessage() + "\"}"; + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorResponse).build(); + } + + return null; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/services/HelloWebService.java b/src/main/java/com/example/services/HelloWebService.java new file mode 100644 index 0000000..4426f82 --- /dev/null +++ b/src/main/java/com/example/services/HelloWebService.java @@ -0,0 +1,13 @@ +package com.example.services; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +@Path("/hello") +public class HelloWebService { + + @GET + public String sayHello() { + return "Hello, world!"; + } +} diff --git a/src/main/java/com/example/services/ItemService.java b/src/main/java/com/example/services/ItemService.java new file mode 100644 index 0000000..7146348 --- /dev/null +++ b/src/main/java/com/example/services/ItemService.java @@ -0,0 +1,385 @@ +package com.example.services; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.List; + +@Path("/items") +public class ItemService { + + @GET + @Path("/get") + @Produces(MediaType.APPLICATION_JSON) + public Response getItemById( + @QueryParam("dbHost") String dbHost, + @QueryParam("itemId") String itemId) { + + if (dbHost == null) { + return Response.status(Response.Status.BAD_REQUEST).entity("{\"error\":\"dbHost parameter is required\"}").build(); + } + + if (itemId == null) { + return Response.status(Response.Status.BAD_REQUEST).entity("{\"error\":\"itemId parameter is required\"}").build(); + } + + DriverManager.setLoginTimeout(5); // Définir le timeout à 5 secondes + + try (DatabaseConnection databaseConnection = new DatabaseConnection(dbHost, "dtv", "dtv")) { + String query = "SELECT * FROM ITM_ITEM WHERE ITEM_ID LIKE ?" ; + + try (PreparedStatement statement = databaseConnection.getConnection().prepareStatement(query)) { + // Concaténer % au paramètre itemId + statement.setString(1, itemId + "%"); + + try (ResultSet resultSet = statement.executeQuery()) { + List itemList = new ArrayList<>(); + + while (resultSet.next()) { + Item item = mapResultSetToItem(resultSet); + itemList.add(item); + } + + if (!itemList.isEmpty()) { + ObjectMapper objectMapper = new ObjectMapper(); + String jsonResponse = objectMapper.writeValueAsString(itemList); + return Response.ok(jsonResponse).build(); + } else { + return Response.status(Response.Status.NOT_FOUND).entity("{\"error\":\"No items found\"}").build(); + } + } + } + } catch (SQLException e) { + e.printStackTrace(); + String errorResponse = "{\"error\":\"" + e.getMessage() + "\"}"; + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorResponse).build(); + } catch (JsonProcessingException e) { + e.printStackTrace(); // Gérer les exceptions correctement dans un environnement de production + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("{\"error\":\"Error processing JSON\"}").build(); + } + } + + private Item mapResultSetToItem(ResultSet resultSet) throws SQLException { + Item item = new Item(); + item.setOrganizationId(resultSet.getLong("ORGANIZATION_ID")); + item.setItemId(resultSet.getString("ITEM_ID")); + item.setOrgCode(resultSet.getString("ORG_CODE")); + item.setOrgValue(resultSet.getString("ORG_VALUE")); + item.setName(resultSet.getString("NAME")); + item.setDescription(resultSet.getString("DESCRIPTION")); + item.setMerchLevel1(resultSet.getString("MERCH_LEVEL_1")); + item.setMerchLevel2(resultSet.getString("MERCH_LEVEL_2")); + item.setMerchLevel3(resultSet.getString("MERCH_LEVEL_3")); + item.setMerchLevel4(resultSet.getString("MERCH_LEVEL_4")); + item.setListPrice(resultSet.getInt("LIST_PRICE")); + item.setMeasureReqFlag(resultSet.getInt("MEASURE_REQ_FLAG")); + item.setItemLevelCode(resultSet.getString("ITEM_LVLCODE")); + item.setParentItemId(resultSet.getString("PARENT_ITEM_ID")); + item.setNotInventoriedFlag(resultSet.getInt("NOT_INVENTORIED_FLAG")); + item.setSerializedItemFlag(resultSet.getInt("SERIALIZED_ITEM_FLAG")); + item.setItemTypeCode(resultSet.getString("ITEM_TYPCODE")); + item.setDtvClassName(resultSet.getString("DTV_CLASS_NAME")); + item.setDimensionSystem(resultSet.getString("DIMENSION_SYSTEM")); + item.setDisallowMatrixDisplayFlag(resultSet.getInt("DISALLOW_MATRIX_DISPLAY_FLAG")); + item.setItemMatrixColor(resultSet.getString("ITEM_MATRIX_COLOR")); + item.setDimension1(resultSet.getString("DIMENSION1")); + item.setDimension2(resultSet.getString("DIMENSION2")); + item.setDimension3(resultSet.getString("DIMENSION3")); + item.setExternalSystem(resultSet.getString("EXTERNAL_SYSTEM")); + item.setCreateDate(resultSet.getTimestamp("CREATE_DATE")); + item.setCreateUserId(resultSet.getString("CREATE_USER_ID")); + item.setUpdateDate(resultSet.getTimestamp("UPDATE_DATE")); + item.setUpdateUserId(resultSet.getString("UPDATE_USER_ID")); + item.setRecordState(resultSet.getString("RECORD_STATE")); + + return item; + } + + public class Item { + private Long organizationId; + private String itemId; + private String orgCode; + private String orgValue; + private String name; + private String description; + private String merchLevel1; + private String merchLevel2; + private String merchLevel3; + private String merchLevel4; + private Integer listPrice; + private Integer measureReqFlag; + private String itemLevelCode; + private String parentItemId; + private Integer notInventoriedFlag; + private Integer serializedItemFlag; + private String itemTypeCode; + private String dtvClassName; + private String dimensionSystem; + private Integer disallowMatrixDisplayFlag; + private String itemMatrixColor; + private String dimension1; + private String dimension2; + private String dimension3; + private String externalSystem; + private Timestamp createDate; + private String createUserId; + private Timestamp updateDate; + private String updateUserId; + private String recordState; + + // Getters and Setters for all fields + + public Long getOrganizationId() { + return organizationId; + } + + public void setOrganizationId(Long organizationId) { + this.organizationId = organizationId; + } + + public String getItemId() { + return itemId; + } + + public void setItemId(String itemId) { + this.itemId = itemId; + } + + public String getOrgCode() { + return orgCode; + } + + public void setOrgCode(String orgCode) { + this.orgCode = orgCode; + } + + public String getOrgValue() { + return orgValue; + } + + public void setOrgValue(String orgValue) { + this.orgValue = orgValue; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getMerchLevel1() { + return merchLevel1; + } + + public void setMerchLevel1(String merchLevel1) { + this.merchLevel1 = merchLevel1; + } + + public String getMerchLevel2() { + return merchLevel2; + } + + public void setMerchLevel2(String merchLevel2) { + this.merchLevel2 = merchLevel2; + } + + public String getMerchLevel3() { + return merchLevel3; + } + + public void setMerchLevel3(String merchLevel3) { + this.merchLevel3 = merchLevel3; + } + + public String getMerchLevel4() { + return merchLevel4; + } + + public void setMerchLevel4(String merchLevel4) { + this.merchLevel4 = merchLevel4; + } + + public Integer getListPrice() { + return listPrice; + } + + public void setListPrice(Integer listPrice) { + this.listPrice = listPrice; + } + + public Integer getMeasureReqFlag() { + return measureReqFlag; + } + + public void setMeasureReqFlag(Integer measureReqFlag) { + this.measureReqFlag = measureReqFlag; + } + + public String getItemLevelCode() { + return itemLevelCode; + } + + public void setItemLevelCode(String itemLevelCode) { + this.itemLevelCode = itemLevelCode; + } + + public String getParentItemId() { + return parentItemId; + } + + public void setParentItemId(String parentItemId) { + this.parentItemId = parentItemId; + } + + public Integer getNotInventoriedFlag() { + return notInventoriedFlag; + } + + public void setNotInventoriedFlag(Integer notInventoriedFlag) { + this.notInventoriedFlag = notInventoriedFlag; + } + + public Integer getSerializedItemFlag() { + return serializedItemFlag; + } + + public void setSerializedItemFlag(Integer serializedItemFlag) { + this.serializedItemFlag = serializedItemFlag; + } + + public String getItemTypeCode() { + return itemTypeCode; + } + + public void setItemTypeCode(String itemTypeCode) { + this.itemTypeCode = itemTypeCode; + } + + public String getDtvClassName() { + return dtvClassName; + } + + public void setDtvClassName(String dtvClassName) { + this.dtvClassName = dtvClassName; + } + + public String getDimensionSystem() { + return dimensionSystem; + } + + public void setDimensionSystem(String dimensionSystem) { + this.dimensionSystem = dimensionSystem; + } + + public Integer getDisallowMatrixDisplayFlag() { + return disallowMatrixDisplayFlag; + } + + public void setDisallowMatrixDisplayFlag(Integer disallowMatrixDisplayFlag) { + this.disallowMatrixDisplayFlag = disallowMatrixDisplayFlag; + } + + public String getItemMatrixColor() { + return itemMatrixColor; + } + + public void setItemMatrixColor(String itemMatrixColor) { + this.itemMatrixColor = itemMatrixColor; + } + + public String getDimension1() { + return dimension1; + } + + public void setDimension1(String dimension1) { + this.dimension1 = dimension1; + } + + public String getDimension2() { + return dimension2; + } + + public void setDimension2(String dimension2) { + this.dimension2 = dimension2; + } + + public String getDimension3() { + return dimension3; + } + + public void setDimension3(String dimension3) { + this.dimension3 = dimension3; + } + + public String getExternalSystem() { + return externalSystem; + } + + public void setExternalSystem(String externalSystem) { + this.externalSystem = externalSystem; + } + + public Timestamp getCreateDate() { + return createDate; + } + + public void setCreateDate(Timestamp createDate) { + this.createDate = createDate; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public Timestamp getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(Timestamp updateDate) { + this.updateDate = updateDate; + } + + public String getUpdateUserId() { + return updateUserId; + } + + public void setUpdateUserId(String updateUserId) { + this.updateUserId = updateUserId; + } + + public String getRecordState() { + return recordState; + } + + public void setRecordState(String recordState) { + this.recordState = recordState; + } + } +} diff --git a/src/main/java/com/example/services/StoreService.java b/src/main/java/com/example/services/StoreService.java new file mode 100644 index 0000000..555e9d5 --- /dev/null +++ b/src/main/java/com/example/services/StoreService.java @@ -0,0 +1,179 @@ +package com.example.services; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@Path("/stores") +public class StoreService { + private static List cachedStoreList; + private static final Lock cacheLock = new ReentrantLock(); + + @GET + @Path("/get") + @Produces(MediaType.APPLICATION_JSON) + public Response getStoreById(@QueryParam("storeId") String storeId) { + if (storeId == null) { + return Response.status(Response.Status.BAD_REQUEST).entity("{\"error\":\"storeId parameter is required\"}").build(); + } + + DriverManager.setLoginTimeout(5); // Définir le timeout à 5 secondes + + // IASPDI com02 / B1Xto9pAbtBCOxuecG7W + // MASPDI com02 / + try (DatabaseConnectionDS databaseConnection = new DatabaseConnectionDS("com02", "B1Xto9pAbtBCOxuecG7W")) { + String query = "SELECT id_structure,nom,'10.100.0.18' AS ip, tel1 AS telephone FROM structure WHERE id_structure = ?" ; + + try (PreparedStatement statement = databaseConnection.getConnection().prepareStatement(query)) { + statement.setString(1, storeId); + + try (ResultSet resultSet = statement.executeQuery()) { + if (resultSet.next()) { + store store = mapResultSetTostore(resultSet); + + ObjectMapper objectMapper = new ObjectMapper(); + String jsonResponse = objectMapper.writeValueAsString(store); + return Response.ok(jsonResponse).build(); + } else { + return Response.status(Response.Status.NOT_FOUND).entity("{\"error\":\"No store found\"}").build(); + } + } + } + } catch (SQLException e) { + e.printStackTrace(); + String errorResponse = "{\"error\":\"" + e.getMessage() + "\"}"; + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorResponse).build(); + } catch (JsonProcessingException e) { + e.printStackTrace(); // Gérer les exceptions correctement dans un environnement de production + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("{\"error\":\"Error processing JSON\"}").build(); + } + } + + @GET + @Path("/getAll") + @Produces(MediaType.APPLICATION_JSON) + public Response getAllStores() { + if (cachedStoreList == null) { + // Utilisation d'un verrou pour éviter que plusieurs requêtes déclenchent la récupération simultanée + cacheLock.lock(); + try { + // Vérification à nouveau après avoir acquis le verrou + if (cachedStoreList == null) { + // Récupérer depuis la base de données seulement si la liste n'est pas en cache + cachedStoreList = retrieveStoresFromDatabase(); + } + } finally { + cacheLock.unlock(); + } + } + + if (!cachedStoreList.isEmpty()) { + ObjectMapper objectMapper = new ObjectMapper(); + String jsonResponse; + try { + jsonResponse = objectMapper.writeValueAsString(cachedStoreList); + return Response.ok(jsonResponse).build(); + } catch (JsonProcessingException e) { + e.printStackTrace(); + return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("{\"error\":\"Error processing JSON\"}").build(); + } + } else { + return Response.status(Response.Status.NOT_FOUND).entity("{\"error\":\"No stores found\"}").build(); + } + } + + private List retrieveStoresFromDatabase() { + DriverManager.setLoginTimeout(5); // Définir le timeout à 5 secondes + + try (DatabaseConnectionDS databaseConnection = new DatabaseConnectionDS("com02", "B1Xto9pAbtBCOxuecG7W")) { + String query = "SELECT st.id_structure, TRIM(st.nom) as nom, '10.100.0.18' AS ip, " + + "st.tel1 AS telephone " + + "FROM COM02.STRUCTURE st " + + "LEFT OUTER JOIN omni.ASPD_XSTO_STRUCTURE axs ON st.ID_STRUCTURE = axs.ID_STRUCTURE " + + "WHERE st.id_structure < 50"; + + try (PreparedStatement statement = databaseConnection.getConnection().prepareStatement(query); + ResultSet resultSet = statement.executeQuery()) { + + List storeList = new ArrayList<>(); + + while (resultSet.next()) { + store store = mapResultSetTostore(resultSet); + storeList.add(store); + } + + return storeList; + } + } catch (SQLException e) { + e.printStackTrace(); + return Collections.emptyList(); + } + } + + private store mapResultSetTostore(ResultSet resultSet) throws SQLException { + store store = new store(); + + store.setId_structure(resultSet.getInt("ID_STRUCTURE")); + store.setNom(resultSet.getString("NOM")); + store.setIp(resultSet.getString("IP")); + store.setTelephone(resultSet.getString("TELEPHONE")); + + return store; + } + + public class store { + private Integer id_structure; + private String nom; + private String ip; + private String telephone; + + public Integer getId_structure() { + return id_structure; + } + + public void setId_structure(Integer id_structure) { + this.id_structure = id_structure; + } + + public String getNom() { + return nom; + } + + public void setNom(String nom) { + this.nom = nom; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public String getTelephone() { + return telephone; + } + + public void setTelephone(String telephone) { + this.telephone = telephone; + } + } + +} diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..7cc252d --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,35 @@ + + + + Archetype Created Web Application + + + index.html + + + + Jersey Web Application + org.glassfish.jersey.servlet.ServletContainer + + jersey.config.server.provider.packages + com.example.services + + 1 + + + + Jersey Web Application + /api/* + + + + CorsFilter + com.example.CorsFilters + + + + CorsFilter + /* + +