Betriebssystem oder Software | version |
---|---|
macOS | Sierra |
Eclipse | 4.6(NEON) |
(Eclipse plugin)Buildship Gradle Integration | 2.0 |
Java SE | 1.8.0_121_b13 |
glassfish | 4.1.1 |
gradle | 3.4.1 |
Ich werde die Installation weglassen.
--Erstellen Sie ein Gradle-Projekt Erstellen Sie in Eclipse ein neues Projekt, indem Sie [Neu]> [Gradle]> [Gradle-Projekt] auswählen.
--Öffnen Sie die Projekteigenschaften und fügen Sie "Projektfacette" hinzu.
"Dynamisches WEB-Modul" hinzufügen. Wählen Sie zu diesem Zeitpunkt "Runtime" auf der rechten Seite des Projektfacettenbildschirms und dann "Glassfish 4".
Ändern Sie build.gradle wie folgt.
build.gradle
apply plugin: 'war'
apply plugin: 'java-library'
repositories {
mavenCentral()
jcenter()
}
dependencies {
providedCompile 'org.projectlombok:lombok:1.16.4'
compile 'com.fasterxml.jackson.core:jackson-databind:2.8.6'
compile 'com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.8.6'
providedCompile 'javax:javaee-web-api:7.0'
providedCompile fileTree(dir: '/glassfish4/glassfish/modules', include: '*.jar')
api 'org.apache.commons:commons-math3:3.6.1'
implementation 'com.google.guava:guava:21.0'
testImplementation 'junit:junit:4.12'
}
war {
exclude 'WEB-INF/lib/**'
exclude 'WEB-INF/classes/**'
}
Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie [Gradle]> [Gradle-Projekt aktualisieren].
Zu diesem Zeitpunkt gibt es ein mysteriöses Ereignis, bei dem die Glassfish-Laufzeit der Bibliothek verschwindet. Ich muss das Projektfilet erneut öffnen und wieder anbringen ... Ich weiß nicht warum (Schweiß)
Schreiben Sie anschließend die Quelldatei, fügen Sie sie dem Server hinzu und führen Sie sie aus.
java:link.griffin.study_gradle.jaxrs.ApplicationConfig.java
package link.griffin.study_gradle.jaxrs;
import javax.ws.rs.ApplicationPath;
import org.glassfish.jersey.server.ResourceConfig;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
@ApplicationPath("stdy")
public class ApplicationConfig extends ResourceConfig {
public ApplicationConfig(){
//Registrieren Sie Ihre eigene Ressource
this.packages(ApplicationConfig.class.getPackage().getName());
this.packages("com.snail.waf21.rest")
//Registrieren Sie eine Klasse für Jacson
.register((new JacksonJaxbJsonProvider(new ObjectMapper(),
JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS)))
//Registrieren Sie die Klasse für JSONP
.register(org.glassfish.jersey.jackson.JacksonFeature.class);
}
}
java:link.griffin.study_gradle.jaxrs.SampleResource.java
package link.griffin.study_gradle.jaxrs;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import link.griffin.study_gradle.jaxrs_sdo.DataSdo;
@Path("rs")
public class SampleResource {
@GET
@Path("run")
@Produces(MediaType.APPLICATION_JSON)
public DataSdo run(){
DataSdo data = new DataSdo();
data.setName("hogehoge");
data.setId(12345);
return data;
}
}
java:link.griffin.study_gradle.jaxrs_sdo.DataSdo.java
package link.griffin.study_gradle.jaxrs_sdo;
import javax.xml.bind.annotation.XmlRootElement;
@lombok.Data
@XmlRootElement
public class DataSdo {
private String name = "";
private Integer id = 0;
}