首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么会出现内部服务器错误,无法在/bin/searchServlet中创建节点

为什么会出现内部服务器错误,无法在/bin/searchServlet中创建节点
EN

Stack Overflow用户
提问于 2020-07-21 00:34:20
回答 1查看 447关注 0票数 0

我正尝试在AEM中创建一个servlet,它使用来自ajax的参数并将来自URL的响应发送回ajax请求,但是当我点击按钮时,它抛出一个内部服务器错误,同时无法在/bin/searchServlet创建节点。

来自URL的响应为json格式

这是我的servlet

代码语言:javascript
运行
复制
package com.community.aem.core.servlets;
import org.osgi.framework.Constants;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;

import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.HttpConstants;

import org.apache.http.client.methods.HttpGet;
import org.apache.http.HttpResponse;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.sling.jcr.api.SlingRepository;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.rmi.ServerException;
import java.util.Base64;
import java.io.IOException;
import javax.servlet.Servlet;

import com.google.gson.Gson;
import com.google.gson.*;


@Component(service=Servlet.class,
    property={
            Constants.SERVICE_DESCRIPTION + "=Simple Demo Servlet",
            "sling.servlet.methods=" + HttpConstants.METHOD_POST,
            "sling.servlet.paths="+ "/bin/searchServlet"
       })

public class slingdemo2 extends 
org.apache.sling.api.servlets.SlingAllMethodsServlet {

private static final long serialVersionUID = 2598426539166789515L;

private SlingRepository repository;

@Reference


public void bindRepository(SlingRepository repository){
    this.repository = repository;
}

public void unbindRepository(SlingRepository repository) {
    this.repository = repository;
}



@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response)
throws ServerException, IOException {

    try
    {
                // Get the submitted form data that is sent from the
        String query = request.getParameter("query");
            
       //sending HTTP request and reading content using buffered reader

        HttpResponse response1 = httpClient.execute(getRequest);

        BufferedReader br = new BufferedReader(new InputStreamReader((response1.getEntity().getContent())));

        String output;

        String myJson = " ";
        while ((output = br.readLine()) != null) {
            myJson = myJson + output;
        }

        Gson gson = new Gson();
        String jsonArray = gson.toJson(myJson);
        response.getWriter().write(jsonArray);
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}
}

下面是我的ajax查询

代码语言:javascript
运行
复制
$(document).ready(function(){
        $('body').hide().fadeIn(1000);
        $('#submit').click(function() {
            var query= $('query').val() ;

            $.ajax({
            type: 'POST',    
            url:'/bin/searchServlet',
            data:query,


            success: function(responseText){
            $('#result').val(responseText);


         }
     });
  });
    });
EN

回答 1

Stack Overflow用户

发布于 2020-07-21 01:26:47

如果你的帖子(!)servlet将有post请求的代码,而不仅仅是get请求的代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62999913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档