Tag: servlets

运行在Kotlin中编写的Apache Tomcat servlet时出错

当我单击工具栏上的运行绿色箭头按钮,或者从IntelliJ IDEA Ultimate的运行菜单中选择运行Tomcat 8.0.36命令,以启动我在Kotlin中编写的HTTP Servlet应用程序时,似乎服务器启动但无法加载我的应用程序。 我说因为当我点击http://localhost:8080或者我的一个servlet在http://localhost:8080/login ,我只看到一个空白页。 这里是IntelliJ的输出窗口的输出的相关摘录,当我点击运行按钮。 10-Sep-2016 15:34:05.807 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 595 ms Connected to server [2016-09-10 03:34:06,384] Artifact Server:war exploded: Artifact is being deployed, please wait… 10-Sep-2016 15:34:09.256 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) […]

Java:生的servlets web app概念理解

我目前正在探索Java,并且只有路由器支持才能findnano框架。 所以我正在阅读有关servlet,并不能完全理解的概念:我应该有我的应用程序可以有每个该死的请求的servlet? 那只是无法控制的混乱。 下面的解决方案是可行的: 我只有一个servlet捕获所有的请求。 我有一些路由器服务,在这个servlet中将处理url,并简单地返回适当的POJO类的方法调用lambda接受响应和请求。 例如控制器之一(他们都是这样)(在Kotlin,但你明白了): class Foo { fun bar(request: HttpServletRequest, response: HttpServletResponse) { response.getWriter().println(“hello world!”) //or eg write some freemaker template } } 我的路由器会是这样的: Router.addRoute(“GET”, “foo/bar”) { request, response -> Foo().bar(request, response) } //other routes added the same 例如在servlet中,它只会: class TheGodServlet : HttpServlet { override doGet(HttpServletRequest request, HttpServletResponse response) { val handler […]

如何修复Kotlin中的警告:不建议使用命名forms将单个元素分配到可变参数

在将Kotlin从1.1.4升级到最新的1.2.22之后,我得到了很多构建警告: [WARNING] … (422, 29) Assigning single elements to varargs in named form is deprecated 相关的代码是这样的: 422 @RequestMapping(value = “/privacy”, method = arrayOf(RequestMethod.GET)) 423 fun mainLinkPrivacy(request: HttpServletRequest, model: MutableMap): String { 424 425 var lang = request.getParameter(“lang”) 426 427 if(lang == null || lang.isEmpty()) 428 lang = “EN” 429 430 model.put(“lang”,lang) 431 432 return “/mobile/main/mainlink_privacy” […]

Servlets / Undertow – 访问HttpServletRequest和HttpServletResponse

我正在尝试创建一个简单的servlet-servlet,但是我有一些想要实例化servlet的问题。 我不一定需要使用HttpServlet ,我只需要访问HttpServletRequest和HttpServletResponse这样我就可以通过myServicer运行它们。 什么是达到这个目的的最好方法? 我目前的代码: myServicer = … undertow = Undertow.builder() .addHttpListener(port, host) .setHandler(Handlers.path(Handlers.redirect("/")).addPrefixPath("/", Servlets.defaultContainer().addDeployment( Servlets.deployment() .setClassLoader(EmbeddedUndertowServer::class.java.classLoader) .setDeploymentName("myDeployment").setContextPath("/") .addServlets(Servlets.servlet("myServlet", object : HttpServlet() { override fun service(request: HttpServletRequest, response: HttpServletResponse) { myServicer.service(request, response) // doesn't work } }.javaClass).addMapping("/")) ).apply { deploy() }.start() )) .build() undertow.start() 这是行不通的,因为只是想要一个类,它试图实例化。 完整的代码/项目在这里: https : //github.com/tipsy/javalin/pull/25/files

嵌入式Jetty没有找到带注释的Servlet

简而言之:我有一个项目提供了一个包含带注释但没有web.xml的servlet的war artifact。 如果我尝试在码头使用战争,我总是只得到战争内容的目录列表,而不是servlet执行。 任何想法? 长话短说:我的servlets看起来像这样 package swa; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet( asyncSupported = false, urlPatterns={"/*"}) public class ServletX extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set response content type response.setContentType("text/html"); […]

servlets> 3.1:frontcontrolller:multipart / formData:当尺寸太大时,拒绝特定部件名称的文件

在我的应用程序中,我只有一个servlet(也称为前端控制器),根据请求路由到控制器(POJO)。 那个servlet只有@MutipartConfig而没有任何配置。 因为有一个servlet,我不能在该配置中提供最大文件大小选项,因为我的控制器应该自己处理最大文件大小。 例如,我有一个控制器,处理多个文件上传,一次由特定名称标识,例如: avatar – file report – file 我不想要超过4MB的头像,并且报告超过100MB。 我怎样才能做到这一点? 这是真的,我只能(在科特林,但你明白了): request.getParts().forEach { part -> if (part.getName() == "avatar") { if part.getSize() > 4 * 1024 { part.getInputStream().close() //or throw exception } } if (part.getName() == "report") { if (part.getSize() > 100 * 1024) { part.getInputStream().close() //or throw exception } } }

Apache Tomcat 8.0无法加载使用Eclipse for Java EE,Mars 2编写的Kotlin中的servlet类

我正在使用Eclipse for Java EE,Mars 2.我在这个IDE中首先使用Java 8和Apache Tomcat 8.0.x编写了一个servlet应用程序,运行得很好。 现在,我试图将代码移植到Kotlin。 但是,Apache Tomcat服务器,似乎从下面发布的信息,无法找到并加载我的类LoginServlet 。 我已经移植了helper类,并且只是一个名为LoginServlet servlet类。 我删除了这个问题中的所有代码,只是为了展示一个简单的骨骼框架。 这是我的设置: package bookyard.server; // import statements ommitted for brevity open class LoginServlet : HttpServlet() { override fun doGet(request : HttpServletRequest, response : HttpServletResponse) { val msg: String = "HTTP GET method not supported."; try { response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg); } catch (e: […]

运行在Kotlin中编写的Apache Tomcat servlet时出错

当我单击工具栏上的运行绿色箭头按钮,或者从IntelliJ IDEA Ultimate的运行菜单中选择运行Tomcat 8.0.36命令,以启动我在Kotlin中编写的HTTP Servlet应用程序时,似乎服务器启动但无法加载我的应用程序。 我说因为当我点击http://localhost:8080或者我的一个servlet在http://localhost:8080/login ,我只看到一个空白页。 这里是IntelliJ的输出窗口的输出的相关摘录,当我点击运行按钮。 10-Sep-2016 15:34:05.807 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 595 ms Connected to server [2016-09-10 03:34:06,384] Artifact Server:war exploded: Artifact is being deployed, please wait… 10-Sep-2016 15:34:09.256 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) […]