जो आप खोज रहे हैं वह जेट्टी को एक एम्बेडेड परिदृश्य में चला रहा है।
वहां कई उदाहरण उपलब्ध हैं जो दिखाते हैं कि आपके लक्ष्यों को पूरा करने के लिए आपको आवश्यक विभिन्न टुकड़ों को कैसे जोड़ना है।
embedded examples in the jetty source tree देखें।
रिकॉर्ड के लिए, जेटी स्टैंडअलोन वास्तव में कुछ स्टार्टअप और क्लासपाथ से संबंधित बूटस्ट्रैप्स के साथ एम्बेडेड जेटी है। यह वही कोड है, और मूल रूप से उसी तरह इकट्ठा किया जाता है।
चूंकि आपने कहा था कि आप सर्वलेट 3.0 चाहते हैं, जेएसपी में कोई रूचि नहीं है, यह सेटअप करना आसान है। (जेएसपी सेटअप करने के लिए trickier है, लेकिन संभव है)।
सर्वलेट 3.0 विशिष्ट एम्बेडिंग के लिए, जिथब में होस्ट किया गया एक पूर्ण उदाहरण प्रोजेक्ट है।
https://github.com/jetty-project/embedded-servlet-3.0
संक्षेप में, आप निम्नलिखित प्रवर्तन कोड होगा।
package com.company.foo;
import org.eclipse.jetty.annotations.AnnotationConfiguration;
import org.eclipse.jetty.plus.webapp.EnvConfiguration;
import org.eclipse.jetty.plus.webapp.PlusConfiguration;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.Configuration;
import org.eclipse.jetty.webapp.FragmentConfiguration;
import org.eclipse.jetty.webapp.MetaInfConfiguration;
import org.eclipse.jetty.webapp.TagLibConfiguration;
import org.eclipse.jetty.webapp.WebAppContext;
import org.eclipse.jetty.webapp.WebInfConfiguration;
import org.eclipse.jetty.webapp.WebXmlConfiguration;
public class EmbedMe {
public static void main(String[] args) throws Exception {
int port = 8080;
Server server = new Server(port);
String wardir = "target/sample-webapp-1-SNAPSHOT";
WebAppContext context = new WebAppContext();
// This can be your own project's jar file, but the contents should
// conform to the WAR layout.
context.setResourceBase(wardir);
// A WEB-INF/web.xml is required for Servlet 3.0
context.setDescriptor(wardir + "WEB-INF/web.xml");
// Initialize the various configurations required to auto-wire up
// the Servlet 3.0 annotations, descriptors, and fragments
context.setConfigurations(new Configuration[] {
new AnnotationConfiguration(),
new WebXmlConfiguration(),
new WebInfConfiguration(),
new TagLibConfiguration(),
new PlusConfiguration(),
new MetaInfConfiguration(),
new FragmentConfiguration(),
new EnvConfiguration() });
// Specify the context path that you want this webapp to show up as
context.setContextPath("/");
// Tell the classloader to use the "server" classpath over the
// webapp classpath. (this is so that jars and libs in your
// server classpath are used, requiring no WEB-INF/lib
// directory to exist)
context.setParentLoaderPriority(true);
// Add this webapp to the server
server.setHandler(context);
// Start the server thread
server.start();
// Wait for the server thread to stop (optional)
server.join();
}
}
स्रोत
2013-06-22 02:52:16
जेट्टी 9 और सर्वलेट एपीआई 3.1 का उपयोग करके अद्यतन संस्करण: https://github.com/jetty-project/embedded-servlet-3.1 – Kapep