ОК, я полностью застрял. Я хочу запустить Tomcat во встроенном режиме, чтобы можно было протестировать приложение, не запуская сервер в отдельном процессе. Мне не хватает чего-то простого, глупого и важного, и мне нужна твоя помощь, чтобы увидеть это.
Этот тест не пройден с ошибкой HTTP 400, Bad Request. Я пробовал MemoryProtocolHandler, context.invoke (), ... Я не знаю, что делать. Может быть, вы видите что-то простое.
package ca.jbrains.jsfunit.learning.test;
import org.apache.catalina.Container;
import org.apache.catalina.Context;
import org.apache.catalina.Engine;
import org.apache.catalina.connector.Connector;
import org.apache.catalina.connector.Request;
import org.apache.catalina.realm.MemoryRealm;
import org.apache.catalina.startup.Embedded;
import org.junit.After;
import org.junit.Test;
import com.gargoylesoftware.htmlunit.WebClient;
public class LearnEmbeddedTomcatTest {
private Embedded embedded;
private Container host;
private Engine engine;
@Test
public void deploySampleApplicationFromFileSystem() throws Exception {
String tomcatPath = "/Users/jbrains/ThirdParty/apache-tomcat-5.5.28-embed";
// Create an embedded server
embedded = new Embedded();
embedded.setCatalinaHome(tomcatPath);
embedded.setRealm(new MemoryRealm());
// Create an engine
engine = embedded.createEngine();
engine.setDefaultHost("localhost");
// Create a default virtual host
host = embedded.createHost("localhost", tomcatPath + "/webapps");
engine.addChild(host);
// Create an application context
Context context = embedded.createContext("TddJsfWeb", tomcatPath
+ "/webapps/TddJsfWeb");
host.addChild(context);
// Install the assembled container hierarchy
embedded.addEngine(engine);
// Assemble and install a default HTTP connector
Connector connector = embedded.createConnector("localhost", 8080,
"http");
embedded.addConnector(connector);
// Start the embedded server
embedded.setAwait(true);
embedded.start();
WebClient webClient = new WebClient();
webClient.getPage("http://localhost:8080/TddJsfWeb/static.xhtml");
}
}
Распакованный .war определенно находится на /Users/jbrains/ThirdParty/apache-tomcat-5.5.28-embed/webapps/TddJsfWeb/...
, а static.xhtml
находится в корне распакованной папки .war.
Пожалуйста, пожалуйста, покажи мне, какой я глупый. Благодаря.