Вызов службы RESTful приводит к коду ошибки HTTP: 400 - PullRequest
0 голосов
/ 26 января 2020

Просто начать работу с сервисами RESTful и получить простой пример Hello World.

Следующим шагом является отправка объекта Java на сервер, но сбой вызова клиента с ошибкой Failed : HTTP error code : 400. Я подозреваю, что это связано с тем, как служба определена / настроена.

Следующее является частью службы RESTful

@RestController         
public class WelcomeController 
{
    @RequestMapping("/welcome")  //<-----------Works fine
    public String welcome() {
        return new String("Hello World") ;  
    }

    @PostMapping("/postExample")   //<-----------Failing 
    public String postExample(@RequestBody MyObject object1) 
    {
        return new String("Info received " ) ;  
    }
}

Следующее является частью клиента, выполняющего вызов ...

public class RestfulClientTest {
    public static void main(String[] args) 
    {
        initialTest();
        postObject();
    }

    private static void initialTest() 
    {
         ////This works and returns Hello World
    }

    private static void postObject() 
    {
          try {

            URL url = new URL("http://localhost:8083/postExample");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setDoOutput(true);  
            conn.setDoInput(true);

            if (conn.getResponseCode() != 200) {   **//<------Code enters here**
                throw new RuntimeException("Failed : HTTP error code : "
                        + conn.getResponseCode());
            }


            MyObject obj1 = new MyObject("AAA", "BBB");

            ObjectOutputStream out = new ObjectOutputStream(conn.getOutputStream());
            out.writeObject(uLoginInfo);
            out.close();

            BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));

            String output;
            System.out.println("Output from Server .... \n");
            while ((output = br.readLine()) != null) {
                System.out.println(output);
            }
                conn.disconnect();
              } catch (MalformedURLException e) {
                e.printStackTrace();
              } catch (IOException e) {
                e.printStackTrace();
          }
    }   
}

Я уверен, что что-то было пропустил ли это дополнительную аннотацию или формат Сервиса. Любая идея, что первоначальный вызов для открытия соединения не удается?

...