私は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>
実際、私は問題を解決しました。 Eclipse jettyプラグインで実行します。
EclipseにJDK libがありませんでした。そのため、メッセージにはJDK全体をインストールする必要があるというメッセージが表示され続けます。これが主な理由です。
Jetty7とjetty8の2つのバージョンのjettyプラグインをインストールしました。それらは互いに衝突するか何かと思うので、jetty7を削除しました。
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を使用しません。
これらの答えはどれも私にとってはうまくいきませんでした。
デプロイ済みのすべてのJava Webアプリ:
次に、サーバーでプロジェクトを実行します
エラーはなくなりました!
サーバーによって検出されないため、別のプロジェクトをデプロイする前にサーバーを停止する必要があります。そうしないと、404エラーが発生します
サーブレットとスイングの学習が役立ちます。 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/
同じ問題がありました。 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>
ワークスペースからプロジェクトを削除/削除します。プロジェクトをワークスペースに再インポートします。この方法は私にとってはうまくいきました。