実現したいこと
struts2でできたプロジェクトで編集されたソースを実行時に反映させたい
前提
struts2の公式サイトから取得したFull Distributionのstruts2-rest-showcaseをEclipsにて開き、struts2-rest-showcase\src\main\webapp\WEB-INF\src\java\org\demo\rest\example配下のソースとjspファイルを少し修正を行いました。
→こちらに関しましてはJSPのテーブルにてカラムを一つ追加し、それに伴う修正を行った形です。
ほかのwebアプリ同様「サーバーで実行」を行った際にコンパイルされ自動的にclassファイルの更新がかかると思ったのですが更新されておりません。
→struts2-rest-showcase\src\main\ImportedClasses\org\demo\rest\example配下のclassファイルの更新日時に変化がないため「更新されていない」と判断しております。
実行時にはエラー等が起こらずに起動してJSPのみ反映された形で画面が表示されました。
上記ソース以外は公式のものをそのまま使用しています。
下記トップ画面
試したこと
ビルドの出力先が違うのかと思い変更しようとしましたが、struts2-rest-showcase\build\classesとなっているので問題ないとおもいます。
一応classファイルがstruts2-rest-showcase\src\main\ImportedClasses\org\demo\rest\example配下にあるためそちらを指定しようとしましたがネストエラーで適用できませんでした。
また実行時にビルドするよう設定されており、クリーン、リフレッシュ等を行っております。
コード
web.xml
1<?xml version="1.0" encoding="UTF-8"?> 2<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 5 http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 6 version="3.1"> 7 8 <display-name>Struts 2 Rest Example</display-name> 9 10 <!-- Filters --> 11 <!-- START SNIPPET: filter --> 12 <filter> 13 <filter-name>action2</filter-name> 14 <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> 15 </filter> 16 <!-- END SNIPPET: filter --> 17 18 <filter-mapping> 19 <filter-name>action2</filter-name> 20 <url-pattern>/*</url-pattern> 21 </filter-mapping> 22 23 <!-- Welcome file lists --> 24 <welcome-file-list> 25 <welcome-file>index.jsp</welcome-file> 26 </welcome-file-list> 27 28 <!-- Restricts access to pure JSP files - access available only via Struts action --> 29 <security-constraint> 30 <display-name>No direct JSP access</display-name> 31 <web-resource-collection> 32 <web-resource-name>No-JSP</web-resource-name> 33 <url-pattern>*.jsp</url-pattern> 34 </web-resource-collection> 35 <auth-constraint> 36 <role-name>no-users</role-name> 37 </auth-constraint> 38 </security-constraint> 39 40 <security-role> 41 <description>Don't assign users to this role</description> 42 <role-name>no-users</role-name> 43 </security-role> 44 45</web-app> 46
pom.xml
1<?xml version="1.0" encoding="UTF-8"?> 2 3<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"> 4 <modelVersion>4.0.0</modelVersion> 5 <parent> 6 <groupId>org.apache.struts</groupId> 7 <artifactId>struts2-apps</artifactId> 8 <version>6.1.2</version> 9 </parent> 10 11 <artifactId>struts2-rest-showcase</artifactId> 12 <packaging>war</packaging> 13 <version>6.1.2</version> 14 <name>Struts 2 Rest Showcase Webapp</name> 15 <description>Struts 2 Rest Showcase Example</description> 16 17 <dependencies> 18 <dependency> 19 <groupId>org.apache.struts</groupId> 20 <artifactId>struts2-rest-plugin</artifactId> 21 </dependency> 22 <dependency> 23 <groupId>org.apache.struts</groupId> 24 <artifactId>struts2-convention-plugin</artifactId> 25 </dependency> 26 <dependency> 27 <groupId>org.apache.struts</groupId> 28 <artifactId>struts2-config-browser-plugin</artifactId> 29 </dependency> 30 31 <dependency> 32 <groupId>com.fasterxml.jackson.dataformat</groupId> 33 <artifactId>jackson-dataformat-xml</artifactId> 34 </dependency> 35 36 <!-- Logging --> 37 <dependency> 38 <groupId>org.apache.logging.log4j</groupId> 39 <artifactId>log4j-api</artifactId> 40 <version>${log4j2.version}</version> 41 </dependency> 42 <dependency> 43 <groupId>org.apache.logging.log4j</groupId> 44 <artifactId>log4j-core</artifactId> 45 <version>${log4j2.version}</version> 46 </dependency> 47 48 <dependency> 49 <groupId>junit</groupId> 50 <artifactId>junit</artifactId> 51 <scope>test</scope> 52 </dependency> 53 54 <dependency> 55 <groupId>net.sourceforge.jwebunit</groupId> 56 <artifactId>jwebunit-core</artifactId> 57 <version>3.3</version> 58 <scope>test</scope> 59 </dependency> 60 61 <dependency> 62 <groupId>net.sourceforge.htmlunit</groupId> 63 <artifactId>htmlunit</artifactId> 64 <version>2.39.0</version> 65 <scope>test</scope> 66 </dependency> 67 68 <dependency> 69 <groupId>net.sourceforge.jwebunit</groupId> 70 <artifactId>jwebunit-htmlunit-plugin</artifactId> 71 <version>3.3</version> 72 <scope>test</scope> 73 <exclusions> 74 <exclusion> 75 <groupId>xom</groupId> 76 <artifactId>xom</artifactId> 77 </exclusion> 78 <!-- not necessary to compile and it force dependency convergence issues --> 79 <exclusion> 80 <groupId>net.sourceforge.htmlunit</groupId> 81 <artifactId>htmlunit</artifactId> 82 </exclusion> 83 </exclusions> 84 </dependency> 85 86 </dependencies> 87 88 <build> 89 <finalName>struts2-rest-showcase</finalName> 90 <!-- 91 <outputDirectory>src\main\ImportedClasses\org\demo\rest\example</outputDirectory> 92 --> 93 <plugins> 94 <plugin> 95 <groupId>org.eclipse.jetty</groupId> 96 <artifactId>jetty-maven-plugin</artifactId> 97 <version>9.4.46.v20220331</version> 98 <configuration> 99 <stopKey>CTRL+C</stopKey> 100 <stopPort>8999</stopPort> 101 <scanIntervalSeconds>10</scanIntervalSeconds> 102 <webAppSourceDirectory>${basedir}/src/main/webapp/</webAppSourceDirectory> 103 <webAppConfig> 104 <contextPath>/struts2-rest-showcase</contextPath> 105 <descriptor>${basedir}/src/main/webapp/WEB-INF/web.xml</descriptor> 106 </webAppConfig> 107 </configuration> 108 </plugin> 109 <plugin> 110 <artifactId>maven-surefire-plugin</artifactId> 111 <configuration> 112 <argLine>@{argLine}</argLine> 113 <excludes> 114 <exclude>it/**</exclude> 115 <exclude>**/*$*</exclude> 116 </excludes> 117 </configuration> 118 </plugin> 119 </plugins> 120 </build> 121 <properties> 122 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 123 </properties> 124</project> 125
Order.java
1 2package org.demo.rest.example; 3 4import org.apache.commons.lang3.builder.EqualsBuilder; 5import org.apache.commons.lang3.builder.HashCodeBuilder; 6import org.apache.commons.lang3.builder.ToStringBuilder; 7 8public class Order { 9 String id; 10 String clientName; 11 String orderDetail; 12 int amount; 13 14 public Order() {} 15 16 public Order(String id, String clientName, int amount) { 17 super(); 18 this.id = id; 19 this.clientName = clientName; 20 this.orderDetail = orderDetail; 21 this.amount = amount; 22 } 23 public int getAmount() { 24 return amount; 25 } 26 public void setAmount(int amount) { 27 this.amount = amount; 28 } 29 public String getClientName() { 30 return clientName; 31 } 32 public void setClientName(String clientName) { 33 this.clientName = clientName; 34 } 35 public String getOrderDetail() { 36 return orderDetail; 37 } 38 public void setOrderDetail(String orderDetail) { 39 this.orderDetail = orderDetail; 40 } 41 public String getId() { 42 return id; 43 } 44 public void setId(String id) { 45 this.id = id; 46 } 47 48 @Override 49 public boolean equals(Object obj) { 50 if (obj == null) { 51 return false; 52 } 53 if (obj == this) { 54 return true; 55 } 56 if (obj.getClass() != getClass()) { 57 return false; 58 } 59 Order rhs = (Order) obj; 60 return new EqualsBuilder() 61 .append(this.id, rhs.id) 62 .append(this.clientName, rhs.clientName) 63 .append(this.orderDetail, rhs.orderDetail) 64 .append(this.amount, rhs.amount) 65 .isEquals(); 66 } 67 68 @Override 69 public int hashCode() { 70 return new HashCodeBuilder() 71 .append(id) 72 .append(clientName) 73 .append(orderDetail) 74 .append(amount) 75 .toHashCode(); 76 } 77 78 @Override 79 public String toString() { 80 return new ToStringBuilder(this) 81 .append("id", id) 82 .append("clientName", clientName) 83 .append("orderDetail", orderDetail) 84 .append("amount", amount) 85 .toString(); 86 } 87} 88
補足情報(FW/ツールのバージョンなど)
window11
Eclips Version: 2023-03 (4.27.0)
java java version "1.8.0_371"
素人質問になりますので不足情報等あると思います、その際はコメントをよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー