Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅使用JSP页面创建JSON Web服务_Jsp_Java - Fatal编程技术网

仅使用JSP页面创建JSON Web服务

仅使用JSP页面创建JSON Web服务,jsp,java,Jsp,Java,我想只使用JSP页面创建JSON Web服务。 为此,我想在一个JSP文件中完成所有事情 我遵循以下步骤: 文件>新建>名为“测试”的动态Web项目 在“WebContent”文件夹中创建名为“test.jsp”的新文件 下面提到的“test.jsp”文件代码 <%@ page import="javax.ws.rs.POST"%> <%@ page import="javax.ws.rs.Path"%> <%@ page import="javax.ws.rs.c

我想只使用JSP页面创建JSON Web服务。 为此,我想在一个JSP文件中完成所有事情

我遵循以下步骤:

文件>新建>名为“测试”的动态Web项目

在“WebContent”文件夹中创建名为“test.jsp”的新文件

下面提到的“test.jsp”文件代码

<%@ page import="javax.ws.rs.POST"%>
<%@ page import="javax.ws.rs.Path"%>
<%@ page import="javax.ws.rs.core.Response"%>
<%@ page import="javax.ws.rs.Consumes"%>
<%@ page import="javax.ws.rs.Produces"%>
<%@ page import="org.json.JSONObject"%>
<%@ page import="java.util.Date"%>
<%@ page import="java.util.TimeZone"%>
<%@ page import="java.text.DateFormat"%>
<%@ page import="java.text.SimpleDateFormat"%>

@Path("/")
<%!
    DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    SimpleDateFormat returnDateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm");
    @POST
    @Consumes("application/x-www-form-urlencoded")
    @Path("/Register")
    public Response Register(String json) {
        Date dt = new Date();
        formatter.setTimeZone(TimeZone.getTimeZone("IST"));
        String currentTime = formatter.format(dt);
        JSONObject returnJson = new JSONObject();
        try {
            JSONObject innerJsonObj = new JSONObject(json);
            String email = innerJsonObj.getString("email");

            JSONObject jsonData = new JSONObject();
            jsonData.put("id", email);
            returnJson.put("success", true);
        } catch (Exception e) {
            JSONObject errorJson = new JSONObject();
            errorJson.put("success", false);
            return Response.ok(errorJson.toString()).header("Access-Control-Allow-Origin", "*").build();
        }
        return Response.ok(returnJson.toString()).header("Access-Control-Allow-Origin", "*").build();
    }
%>
当我使用Chrome Rest Web服务客户端插件发布JSON时 带有“”URL的JSON数据

{"email": "test@xyz.com"}
它给出了以下回应

404, Not Found
Date: Wed, 28 Sep 2016 12:06:00 GMT
Server: Apache-Coyote/1.1
Content-Length: 1036
Content-Language: en
Content-Type: text/html;charset=utf-8
我的Tomcat 8服务器日志:

Sep 28, 2016 5:01:46 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:test' did not find a matching property.
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version:        Apache Tomcat/8.0.33
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Mar 18 2016 20:31:49 UTC
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number:         8.0.33.0
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Windows 8.1
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            6.3
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             C:\Program Files\Java\jdk1.8.0_45\jre
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_45-b15
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         D:\Documents\Eclipse_Workspace\test\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         C:\Program Files\Apache Software Foundation\Tomcat 8.0
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=D:\Documents\Eclipse_Workspace\test\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 8.0
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=D:\Documents\Eclipse_Workspace\test\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 8.0\endorsed
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
Sep 28, 2016 5:01:46 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.8.0_45\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_45/bin/server;C:/Program Files/Java/jre1.8.0_45/bin;C:/Program Files/Java/jre1.8.0_45/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Skype\Phone\;C:\Program Files\TortoiseSVN\bin;C:\WINDOWS\System32;;.
Sep 28, 2016 5:01:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Sep 28, 2016 5:01:47 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 28, 2016 5:01:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
Sep 28, 2016 5:01:47 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 28, 2016 5:01:47 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2795 ms
Sep 28, 2016 5:01:47 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Sep 28, 2016 5:01:47 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.0.33
Sep 28, 2016 5:01:49 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Sep 28, 2016 5:01:49 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Sep 28, 2016 5:01:49 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
Sep 28, 2016 5:01:49 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2356 ms

我正在使用EclipseMars1、Tomcat 8和jdk1.8.0_45。

这是一个奇怪的结构。这取决于如何设置tomcat来编译jsp。通常情况下,这是懒惰地完成的,即第一次需要它们

在应用程序开始时(据我所知,只有在那时),对类路径进行扫描以找到JAX-RS注释并绑定它们


因此,您可以看到为什么它不起作用(可能永远也不会起作用)。

我想只使用JSP页面创建JSON Web服务,为什么?这背后的原因是什么?这将是最糟糕的编程实践。@Simze由于某种原因,我不得不在第三方工具中部署这个jsp文件。这就是为什么我必须创建相同的。这有太多的错误,很难知道从哪里开始。@AlanHay请从任何地方开始。
404, Not Found
Date: Wed, 28 Sep 2016 12:06:00 GMT
Server: Apache-Coyote/1.1
Content-Length: 1036
Content-Language: en
Content-Type: text/html;charset=utf-8
Sep 28, 2016 5:01:46 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:test' did not find a matching property.
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version:        Apache Tomcat/8.0.33
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Mar 18 2016 20:31:49 UTC
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number:         8.0.33.0
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Windows 8.1
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            6.3
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             C:\Program Files\Java\jdk1.8.0_45\jre
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_45-b15
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         D:\Documents\Eclipse_Workspace\test\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         C:\Program Files\Apache Software Foundation\Tomcat 8.0
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=D:\Documents\Eclipse_Workspace\test\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 8.0
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=D:\Documents\Eclipse_Workspace\test\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 8.0\endorsed
Sep 28, 2016 5:01:46 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
Sep 28, 2016 5:01:46 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.8.0_45\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_45/bin/server;C:/Program Files/Java/jre1.8.0_45/bin;C:/Program Files/Java/jre1.8.0_45/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Skype\Phone\;C:\Program Files\TortoiseSVN\bin;C:\WINDOWS\System32;;.
Sep 28, 2016 5:01:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Sep 28, 2016 5:01:47 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 28, 2016 5:01:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
Sep 28, 2016 5:01:47 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 28, 2016 5:01:47 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2795 ms
Sep 28, 2016 5:01:47 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Sep 28, 2016 5:01:47 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.0.33
Sep 28, 2016 5:01:49 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Sep 28, 2016 5:01:49 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Sep 28, 2016 5:01:49 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
Sep 28, 2016 5:01:49 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2356 ms