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

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 MATLAB yalmip 可转移负荷的简单建模出错,如何解决?
  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?