linshuyu1987 2011-08-23 11:22
浏览 1172
已采纳

jetty HTTP ERROR: 503

我输入地址:http://localhost/ctc-emassh (其中ctc-emassh是项目名称,这是一个基于ssh框架开发的程序)

Problem accessing /ctc-emassh. Reason:

Service Unavailable

Powered by Jetty://

但是我写一个简单的servlet应用:login程序,程序正常执行。

//嵌入的jetty web容器程序
public class JettyWebContainer {
public Server server;

@Inject
ILog logger;

@Inject
ResourceLocator rs;

private ContextHandlerCollection handlers = new ContextHandlerCollection();

public WebAppContext newAppContext(File file) {
    String appname = file.getName();
    String dir = file.getAbsolutePath();
    final WebAppContext context = new WebAppContext();
    context.setDescriptor(dir + "/WEB-INF/web.xml");
    context.setResourceBase(dir);
    context.setContextPath("/" + appname);
    context.setParentLoaderPriority(true);//是否与java2兼容
    return context;
}

private static File[] loadAppList(File appDir) {
    return appDir.listFiles(new FileFilter() {
        public boolean accept(File pathname) {
            return pathname.isDirectory();
        }
    });
}

@Start
public void start() throws Exception {
    int port = 80;
    logger.info("port:" + port);
    server = new Server(port);

    for (File appf : loadAppList(rs.getFile("webapp"))) {
        addHandler(newAppContext(appf));
    }
    server.setHandler(handlers);
    try {
        server.start();
        logger.info("server start ok!");
    } catch (Exception e) {
        logger.error(e, "server start failed!");
        throw e;
    }
}

@Stop
public void stop() throws Exception {
    try {
        server.stop();
        logger.info("stop JettyWebContainer ok!");
    } catch (Exception e) {
        logger.error(e, "未成功关闭server");
        throw e;
    }
}

public void addHandler(Handler handler) {
    logger.info("JettyWebContainer add handler %s", handler);
    handlers.addHandler(handler);
}

public void removeHandler(Handler handler) {
    logger.info("JettyWebContainer remove handler %s", handler);
    handlers.removeHandler(handler);
}

}

小弟,遇到这问题迟迟不能解决,待解决!

  • 写回答

5条回答 默认 最新

  • myali88 2011-08-24 10:53
    关注

    [code="java"]
    FAILED org.eclipse.jetty.security.ConstraintSecurityHandler@17ec9f7: java.lang.IllegalStateException: No LoginService for
    [/code]
    问题在这里。你可以试试下面的代码:
    [code="java"]
    Server server = new Server();

    SocketConnector connector = new SocketConnector();
    // Set some timeout options to make debugging easier.
    connector.setMaxIdleTime(1000 * 60 * 60);
    connector.setSoLingerTime(-1);
    connector.setPort(PORT);
    server.addConnector(connector);

    WebAppContext webAppCtx = new WebAppContext();
    webAppCtx.setServer(server);
    webAppCtx.setContextPath("/");
    webAppCtx.setWar("src/main/webapp");

    HashLoginService dummyLoginService = new HashLoginService(
    "TEST-SECURITY-REALM");
    webAppCtx.getSecurityHandler().setLoginService(dummyLoginService);

    server.setHandler(webAppCtx);

    try {
    server.start();
    System.in.read();
    server.stop();
    server.join();
    } catch (Exception e) {
    e.printStackTrace();
    System.exit(100);
    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 准备学习小程序搭建,谁能手把手的教我啊?
  • ¥15 第一天重装配置python和opencv后第二天打开就成这样,瞎捣鼓搞出来文件夹还是没法联网
  • ¥20 Arduino 循迹小车程序电路出错故障求解
  • ¥20 Arduino 循迹小车程序电路出错故障求解
  • ¥100 AT89C52单片机C语言调试之后再回答
  • ¥15 AT89C52单片机C语言串口助手发送数据包返回值
  • ¥15 C++数组中找第二小的数字程序纠错
  • ¥50 MATLAB APP 制作出现问题
  • ¥15 wannier复现图像时berry曲率极值点与高对称点严重偏移
  • ¥15 利用决策森林为什么会出现这样·的问题(关键词-情感分析)