web-dev-qa-db-ja.com

Jetty:HTTPエラー:503 /サービスを利用できません

私はJettyが初めてなので、ここでサンプルプログラムを実行しようとしました " http://www.codeproject.com/Articles/128145/Run-Jetty-Web-Server-Within-Your-Application 「しかし、ページにエラーメッセージが表示されました」 http:// localhost:8585/runJetty / "

"HTTP ERROR: 503
Problem accessing /runJetty/. Reason: 
    Service Unavailable
--------------------------------------------------------------------------------
Powered by Jetty:// "

Eclipseから取得したエラーログ:

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:FATAL@file:/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

私のxmlファイル

<?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> 

私のJSPファイル

<%@ 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>  
13
huao

実際、私は問題を解決しました。 Eclipse jettyプラグインで実行します。

  1. EclipseにJDK libがありませんでした。そのため、メッセージにはJDK全体をインストールする必要があるというメッセージが表示され続けます。これが主な理由です。

  2. Jetty7とjetty8の2つのバージョンのjettyプラグインをインストールしました。それらは互いに衝突するか何かと思うので、jetty7を削除しました。

4
huao

2012-04-20 11:14:32.617:WARN:oejx.XmlParser:FATAL @ file:/ C:/ Users/***/workspace/Test/WEB-INF/web.xml line:1 col:7:org .xml.sax.SAXParseException:「[xX] [mM] [lL]」に一致する処理命令ターゲットは許可されません。

あなたは、web.xmlの形式が正しくないことをログに記録しています。行1、列7。UTF-8である可能性があります Byte-Order-Marker

Xmlが整形式であり、BOMがないことを確認してください。 JavaはBOMを使用しません。

8

これらの答えはどれも私にとってはうまくいきませんでした。

デプロイ済みのすべてのJava Webアプリ:

  • ウィンドウ/ビューの表示/その他...
  • [サーバー]フォルダーに移動し、[サーバー]を選択します
  • LocalhostでJ2EEプレビューを右クリックします
  • クリックして追加および削除...すべて削除をクリックします

次に、サーバーでプロジェクトを実行します

エラーはなくなりました!

サーバーによって検出されないため、別のプロジェクトをデプロイする前にサーバーを停止する必要があります。そうしないと、404エラーが発生します

1
Patrick

サーブレットとスイングの学習が役立ちます。 Swing APIからデータを取得します。

@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();

}

HttpServetハンドラーからデータを取得します。

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);

}
}
}
}
}

}
}

詳細は http://writeulearn.com/jetty-handler-swing-handler-differences/

0
Bindu S

同じ問題がありました。 xmlファイルから改行を削除して解決しました。やった

<operationBindings>
    <OperationBinding>
        <operationType>update</operationType>
        <operationId>makePdf</operationId>
        <serverObject>
            <className>com.myclass</className>
            <lookupStyle>new</lookupStyle>
        </serverObject>
        <serverMethod>makePdf</serverMethod>
    </OperationBinding>
</operationBindings>

の代わりに ...

<serverObject>
            <className>com.myclass
</className>
            <lookupStyle>new</lookupStyle>
</serverObject>
0
lanzalibre

ワークスペースからプロジェクトを削除/削除します。プロジェクトをワークスペースに再インポートします。この方法は私にとってはうまくいきました。

0
MAFAIZ