java - 在 Tomcat 服务器(本地)中的 servelt 运行期间,无法加载 Intellij Json 对象

标签 java json tomcat intellij-idea

我在 Intellij 中编写了一个 jsp 和相应的 servelt,并在 Intellij 的 Tomcat 本地服务器中运行它。现在没有 json 文件,如果我传递一些普通文本作为输出,servlet 工作正常,但它显示 json 对象

java.lang.NoClassDefFoundError: org/json/simple/JSONObject Servlet.UserInt.processRequest ---我已经在外部库中导入了 json-simple -1,1.jar,因此它可以编译但在 servlet 运行期间无法加载。 我还在 web 下创建了一个名为 lib 的文件夹,并将 json 和 servet jar 文件放在那里。

在此输入验证码

UserInt.java---

public class UserInt extends javax.servlet.http.HttpServlet {
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
      processRequest(request,response);
    }

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        processRequest(request,response);
    }

   /* @Override
    public String toString() {
        return "UserInt{} " + super.toString();
    }*/

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{
        response.setContentType("application/json");
        try{
            String query=request.getParameter("searchquery");
            JSONObject json = new JSONObject();

            json.put("query", query);
            json.put("country", "India");
            String output = json.toString();

            PrintWriter writer = response.getWriter();
           writer.write("output");
            writer.flush();
            writer.close();
       }
        catch (Exception e){
            e.printStackTrace();
        }

    }
}

索引.jsp---

 <form action="Servlet.UserInt" method="get" id="search-box">
    <input type="text" class="search" name="searchquery" size="20" maxlength="120" placeholder="search...">
    <input type="submit" class="button"value="Search">

    <div class="set-parameter"><h3>User-Requirements</h3>
      <i>Number of pages you want to see ?</i><input type="text" name="k" class="simple"/>
    </div>

[enter image description here][1]
  </form>

谁能帮我解决这个错误?提前致谢!!

最佳答案

检查是否导入了正确的 org.json jar 文件。

我在 IDEA 中创建了一个简单的项目,在 pom.xml 中有这样的依赖:

  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>3.0.1</version>
    </dependency>

    <dependency>
      <groupId>org.json</groupId>
      <artifactId>json</artifactId>
      <version>20160810</version>
    </dependency>

  </dependencies>

  <repositories>
    <repository>
      <id>maven-eu.nuxeo.org</id>
      <url>https://maven-eu.nuxeo.org/nexus/content/repositories/public-releases</url>
    </repository>
  </repositories>

小服务程序:

package servlets;
import org.json.JSONObject;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet ("/myservlet.do")
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        PrintWriter out = resp.getWriter();
        out.println("<html>");
        out.println("<body>");
        out.println("<h1>Hello Servlet Get</h1>");

        JSONObject json = new JSONObject();
        json.put("query", "query");
        json.put("country", "India");
        String output = json.toString();

        out.println(output);
        out.println("</body>");
        out.println("</html>");
    }
}

结果:

Hello Servlet Get
{"country":"India","query":"query"}

我在 WildFly JBoss 10.2.0.Final 上运行它

关于java - 在 Tomcat 服务器(本地)中的 servelt 运行期间,无法加载 Intellij Json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47261212/

相关文章:

java - Wicket 口 TextField 的奇怪行为

java - 自引导 Ant 构建时出错

java - 应用程序崩溃后,Android studio 中的清理项目和几个选项被禁用

ios - 将数组从 JSON 解析为 Realm

angularjs - AngularJS 的可重用 docker 镜像

Tomcat Hot Deplot 适用于 JSP 文件但不适用于 Java 文件

java - Froyo 上的 ListView 随机 IndexOutOfBoundsException

ruby-on-rails - Rails JSON 注入(inject)

c# - 从架构角度看Apache/Tomcat与IIS7的共性和差异

maven - Tomcat/TomEE 丢失对 catalina.sh 和 server.xml 的更改