Ich bin neu bei Jetty. Ich habe versucht, das Beispielprogramm hier auszuführen. " http://www.codeproject.com/Articles/128145/Run-Jetty-Web-Server-Within-Your-Application " but Ich habe eine Fehlermeldung auf meiner Seite erhalten " http: // localhost: 8585/runJetty/ "
"HTTP ERROR: 503
Problem accessing /runJetty/. Reason:
Service Unavailable
--------------------------------------------------------------------------------
Powered by Jetty:// "
Fehlerprotokoll, das ich von Eclipse bekomme:
2012-04-20 11:14:32.522:INFO:oejs.Server:jetty-8.1.3.v20120416
2012-04-20 11:14:32.617:WARN:oejx.XmlParser:[email protected]:/C:/Users/***/workspace/Test/WEB-INF/web.xml line:1 col:7 : org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
2012-04-20 11:14:32.617:WARN:oejw.WebAppContext:Failed startup of context o.e.j.w.WebAppContext{/runJetty,file:/C:/Users/***/workspace/Test/}
org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
at com.Sun.org.Apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.Sun.org.Apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLScanner.scanPIData(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanPIData(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLScanner.scanPI(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.Sun.org.Apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.Sun.org.Apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.Eclipse.jetty.xml.XmlParser.parse(XmlParser.Java:199)
at org.Eclipse.jetty.xml.XmlParser.parse(XmlParser.Java:215)
at org.Eclipse.jetty.webapp.Descriptor.parse(Descriptor.Java:60)
at org.Eclipse.jetty.webapp.WebDescriptor.parse(WebDescriptor.Java:143)
at org.Eclipse.jetty.webapp.MetaData.setWebXml(MetaData.Java:165)
at org.Eclipse.jetty.webapp.WebXmlConfiguration.preConfigure(WebXmlConfiguration.Java:55)
at org.Eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.Java:417)
at org.Eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.Java:453)
at org.Eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:59)
at org.Eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.Java:224)
at org.Eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.Java:167)
at org.Eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:59)
at org.Eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.Java:90)
at org.Eclipse.jetty.server.Server.doStart(Server.Java:262)
at org.Eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:59)
at blog.runjetty.server.JettyServer.start(JettyServer.Java:22)
at blog.runjetty.ui.listener.ServerStartStopActionListner.actionPerformed(ServerStartStopActionListner.Java:38)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at Java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at Java.awt.Component.processEvent(Unknown Source)
at Java.awt.Container.processEvent(Unknown Source)
at Java.awt.Component.dispatchEventImpl(Unknown Source)
at Java.awt.Container.dispatchEventImpl(Unknown Source)
at Java.awt.Component.dispatchEvent(Unknown Source)
at Java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at Java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at Java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at Java.awt.Container.dispatchEventImpl(Unknown Source)
at Java.awt.Window.dispatchEventImpl(Unknown Source)
at Java.awt.Component.dispatchEvent(Unknown Source)
at Java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at Java.awt.EventQueue.access$000(Unknown Source)
at Java.awt.EventQueue$1.run(Unknown Source)
at Java.awt.EventQueue$1.run(Unknown Source)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at Java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at Java.awt.EventQueue$2.run(Unknown Source)
at Java.awt.EventQueue$2.run(Unknown Source)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at Java.awt.EventQueue.dispatchEvent(Unknown Source)
at Java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at Java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at Java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at Java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at Java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at Java.awt.EventDispatchThread.run(Unknown Source)
2012-04-20 11:14:32.648:INFO:oejs.AbstractConnector:Started [email protected]:8585
Meine XML-Datei
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://Java.Sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/j2ee
http://Java.Sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<welcome-file-list>
<welcome-file>page/index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Meine JSP-Datei
<%@ page language="Java" contentType="text/html; charset=ISO-8859-1 pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Embedding Jetty</title>
</head>
<body>
<h2>Running Jetty web server from our application!!</h2>
</body>
</html>
Eigentlich habe ich das Problem gelöst. Ich lasse es von Eclipse Jetty Plugin laufen.
Ich hatte die JDK-Bibliothek nicht in meinem Eclipse. Daher wird immer wieder die Meldung angezeigt, dass ich das vollständige JDK-System benötige. Dies ist der Hauptgrund.
Ich habe zwei Versionen von Jetty-Plugin installiert, nämlich Jetty7 und Jetty8. Ich denke, dass sie miteinander in Konflikt stehen oder so, also habe ich die Jetty7 entfernt und es funktioniert!
2012-04-20 11: 14: 32.617: WARNUNG: oejx.XmlParser: FATAL @ file:/C:/Users/***/workspace/Test/WEB-INF/web.xml Zeile: 1 Spalte: 7: org .xml.sax.SAXParseException: Das mit "[xX] [mM] [lL]" übereinstimmende Verarbeitungsanweisungsziel ist nicht zulässig.
Das Log zeigt an, dass die web.xml fehlerhaft ist. Zeile 1, Spalte 7. Es kann ein UTF-8 Byte-Order-Marker sein
Vergewissern Sie sich, dass Ihre XML-Datei fehlerfrei ist und keine Stückliste enthält. Java verwendet keine Stücklisten.
Keine dieser Antworten funktionierte für mich.
Ich musste alle bereitgestellten Java-Web-Apps entfernen:
Führen Sie dann das Projekt auf dem Server aus
Der Fehler ist weg!
Sie müssen den Server anhalten, bevor Sie ein anderes Projekt bereitstellen, da es vom Server nicht gefunden wird. Andernfalls erhalten Sie einen 404-Fehler
Servlet vs Swing zu lernen, wird helfen .. __ Daten von Swing-API holen:
@POST
@Path(“/e”)
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response api1(String requestJson, public Response api1(String requestJson, @Context HttpHeaders httpHeaders)
{
String h1 = httpHeaders.getHeaderString(“h1”);
switch (h1) {
case “1”: {
if (h1 != null) {
if (validateJsonSyntax(requestJson)) {
ObjectMapper objectMapper = new ObjectMapper(); try {
Object1 obj = objectMapper.readValue(requestJson, json1.class); return Response.status(Response.Status.ACCEPTED).build(); }
catch (Exception e) {
return Response.status(Response.Status.BAD_REQUEST).build(); }
}
}
}
break;
default: { } break;
} return Response.status(Response.Status.BAD_REQUEST).build();
}
Daten von HttpServet-Handlern abrufen:
public class c1 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//super.doPost(request, response);
String h1 = request.getHeader(“h1”);
String h2 = request.getHeader(“h2”);
switch (h1) {
case “one”: {
if (h2 != null) {
InputStream inStrReqBody = request.getInputStream();
if (inStrReqBody != null) {
String strReqBody = IOUtils.toString(inStrReqBody,
request.getCharacterEncoding());
if (validateJsonSyntax(strReqBody)) {
ObjectMapper objectMapper = new ObjectMapper();
try {
Object1 obj1 = objectMapper.readValue(strReqBody, VNFCatalogResponse.class);
response.setStatus(HttpServletResponse.SC_ACCEPTED);
} catch (Exception e) {
\
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
}
}
}
}
}
}
}
weitere Informationen unter http://writeulearn.com/jetty-handler-swing-handler-differences/
Ich hatte das gleiche Problem. Ich löste es, indem ich den Zeilenumbruch aus der XML-Datei entfernte. Ich tat
<operationBindings>
<OperationBinding>
<operationType>update</operationType>
<operationId>makePdf</operationId>
<serverObject>
<className>com.myclass</className>
<lookupStyle>new</lookupStyle>
</serverObject>
<serverMethod>makePdf</serverMethod>
</OperationBinding>
</operationBindings>
anstatt ...
<serverObject>
<className>com.myclass
</className>
<lookupStyle>new</lookupStyle>
</serverObject>
Entfernen/Löschen Sie das Projekt aus dem Arbeitsbereich. und importieren Sie das Projekt erneut in den Arbeitsbereich ... Diese Methode hat für mich funktioniert.