Web sitemde iskeleyi yerleştirmeye çalışıyorum, böylece bir kavanoz olarak paketlediğimde, bir sunucuyu yapılandırma hakkında endişelenmenize gerek kalmadan kavanoz dosyasını çalıştırabilirim. Ancak, ana sınıfımı kurarken bazı problemlerim var, böylece iskeleler kaynak sınıflarıma erişebiliyorlar. Derslere baktım ama tam olarak aradığım şeyi vermediler. Şimdiye kadar sahip olduğum şey bu.Jetty ve Jersey'i Java uygulamamıza nasıl yerleştiririm?
package pojo;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
public class Main {
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
context.setContextPath("/");
ServletHolder h = new ServletHolder(new DefaultServlet());
h.setInitParameter("javax.ws.rs.Application","resources.DBCollection");
context.addServlet(h, "/*");
server.setHandler(context);
server.start();
server.join();
}
}
Ve bu sınıfa eşlemek çalışıyorum:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>PartyAPI</groupId>
<artifactId>PartyAPIMaven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>com.codahale.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>9.0.0.RC0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>9.0.0.RC0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlets</artifactId>
<version>9.0.0.RC0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.6.0-SNAPSHOT</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>oss.sonatype.org</id>
<name>OSS Sonatype Staging</name>
<url>https://oss.sonatype.org/content/groups/staging</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.6</version>
<configuration>
<createDependencyReducedPom>true</createDependencyReducedPom>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>com.resteasy.Star.Main</Main-Class>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Localhost: 8111/webapi/party girdiğimde 500 hata alıyorum (Not: NetBind Exception alıyorum çünkü bağlantı noktasını 8111 olarak değiştirdim), bunu nasıl düzeltirim (stack strace yazdırılmaz). Ayrıca, javadocs bulamadım, setInitParameter'ın ne yaptığını ve jersey içeriğine göre "statik" içerikten ne kastettiğinizi açıklar mısınız? – sreya
Statik içerik dinamik olmayan içeriğidir ve kimin için sorun olursa olsun statik kalır. görüntüler, javascript, css, vb. Jersey kaynakları Dinamik içerik senaryolarının altına düşer. Kodunuzun oluşturduğu şeyler son kullanıcıya (tarayıcıya) geri gönderilecek. Hata 500'e gelince, sorunuzu üretilen stacktrace ile güncelleyin. Ayrıca Jersey özellikleri hakkında yorum yapamayacağımı biliyorum (gerçekten onları bilmediğim gibi. Ben bir Jetty geliştiricisiyim) –
Yığın izi alamıyorum :(, programı ana bilgisayardan çalıştırabilirim. sınıf mı yoksa proje dizininden mi koşmam gerekiyor?Bu – sreya