我在 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/