我正在尝试使用 Java EE MVC API 实现 - Ozark 创建一个 MVC 应用程序。我使用 Grizzly 作为嵌入式 Web 服务器。当然,使用 Ozark 是一个 JAX-RS 实现 - Jersey。
这是我的服务器类,其中运行方法由 main 方法调用:
public class GrizzlyServer {
private static final Logger LOGGER = LoggerFactory.getLogger(GrizzlyServer.class);
private static final String APP_NAME = "Hello World";
private static URI baseUri;
private static final String PROTOCOL = "http://";
private static final String HOST = "localhost";
private static final String PATH = "app/";
private static final int DEFAULT_PORT = 8080;
private GrizzlyServer() {
}
private static int port(String[] args) {
if (args.length > 0) {
String port = args[0];
try {
return Integer.valueOf(port);
} catch (NumberFormatException exception) {
LOGGER.error("Invalid port number {}", port);
LOGGER.error("Default port number {} will be used", DEFAULT_PORT);
}
}
return DEFAULT_PORT;
}
public static HttpServer startServer(int port) {
final ResourceConfig rc = new ApplicationResourceConfig();
baseUri = UriBuilder.fromUri(PROTOCOL + HOST).port(port).path(PATH).build();
HttpServer httpServer = GrizzlyHttpServerFactory.createHttpServer(baseUri, rc);
return httpServer;
}
public static void run(String[] args) throws IOException {
int port = port(args);
try {
final HttpServer server = startServer(port);
LOGGER.info("{} started with WADL available at {}application.wadl", APP_NAME, baseUri);
LOGGER.info("Hit Enter to stop it...");
System.in.read();
server.shutdown();
} catch (IOException exception) {
LOGGER.error("{}", exception.getMessage());
LOGGER.error("Exit...");
System.exit(1);
}
}
}
这是我的控制器:
@Controller
@Path("hello-world")
public class HelloWorldController {
@GET
public String index() {
return "/WEB-INF/index.jsp";
}
}
我的应用程序结构如下所示:
java
resources
web
..WEB-INF
..index.jsp
如果我运行我的应用程序并打开我的浏览器http://localhost:8080/app/hello-world,它会显示返回字符串 od my method index 而不是index.jsp的内容:
/WEB-INF/index.jsp
这些是相关的依赖项(泽西版本:2.26):
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
</dependency>
<!-- Dependency Injection -->
<dependency>
<groupId>org.glassfish.hk2</groupId>
<artifactId>hk2-api</artifactId>
<version>2.5.0-b50</version>
<exclusions>
<exclusion>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
</dependency>
<!-- MVC -->
<dependency>
<groupId>org.glassfish.ozark</groupId>
<artifactId>ozark</artifactId>
<version>1.0.0-m02</version>
</dependency>
任何帮助将不胜感激。谢谢...