Кажется, развертывание Azure не работает с моим веб-сервисом в Java EE с инструментами IntelliJ и Azure. - PullRequest
0 голосов
/ 06 января 2019

Я сделал веб-сервис в Java EE в SCRUD. Я пытаюсь поместить его в веб-приложение Azure, потому что я хотел бы использовать его для другого проекта, и будет проще, если я смогу его включить. Но когда я развертываю его в Azure, у меня есть доступ только на странице index.jsp.

Мои занятия такие:

@Path("LikePost")
public class LikePostAPI extends RestApplication {
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("GetAll")
public Response getAll(){
    Connection conn= GetConnection.getInstance().getConnection();
    Response response= Response.status(Response.Status.OK).entity(new DaoLikePost(conn).getAll()).build();
    return response;
}
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("getLike")
public Response getLike(@QueryParam("id") int id) {
    Response response=null;
    Connection conn=GetConnection.getInstance().getConnection();
    Like l=new DaoLikePost(conn).find(id);
    if(l!=null)
        response=Response.status(Response.Status.OK).entity(l).build();
    else
        response=Response.status(Response.Status.NO_CONTENT).entity(null).build();
    return response;
}
@POST
@Produces(MediaType.APPLICATION_JSON)
@Path("CreateLike")
public Response createLike(@FormParam("dateLiked") String dateLike,@FormParam("user") String userId,@FormParam("post") String postId){
    Connection conn=GetConnection.getInstance().getConnection();
    Like l=new Like();
    l.setUser(new DaoUser(conn).find(Integer.parseInt(userId)));
    DateFormat dateFormat=new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
    Date date=null;
    try {
        date=dateFormat.parse(dateLike);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    l.setDateLiked(date);
    l.setPost(new DaoPost(conn).find(Integer.parseInt(postId)));
    Boolean test=new DaoLikePost(conn).create(l);
    Response response=null;
    if(test)
        response=Response.status(Response.Status.OK).entity(test).build();
    else
        response=Response.status(Response.Status.BAD_REQUEST).entity(test).build();
    return response;
}
@DELETE
@Path("DeleteLike")
@Produces(MediaType.APPLICATION_JSON)
public Response deleteLike(@QueryParam("id")int id){
    Connection conn=GetConnection.getInstance().getConnection();
    Like l=new DaoLikePost(conn).find(id);
    Boolean test=new DaoLikePost(conn).delete(l);
    Response response=null;
    if(test)
        response=Response.status(Response.Status.OK).entity(test).build();
    else
        response=Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(null).build();
    return response;
}
@PUT
@Path("UpdateLike")
@Produces(MediaType.APPLICATION_JSON)
public Response updateLike(@FormParam("id") String idLike,@FormParam("dateLiked") String dateLike,@FormParam("user") String userId,@FormParam("post") String postId){
    Connection conn=GetConnection.getInstance().getConnection();
    Like l=new Like();
    l.setId(Integer.parseInt(idLike));
    l.setUser(new DaoUser(conn).find(Integer.parseInt(userId)));
    Date date=null;
    DateFormat dateFormat=new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
    try {
        date=dateFormat.parse(dateLike);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    l.setDateLiked(date);
    l.setPost(new DaoPost(conn).find(Integer.parseInt(postId)));
    Boolean test=new DaoLikePost(conn).update(l);
    Response response=null;
    if(test)
        response=Response.status(Response.Status.OK).entity(test).build();
    else
        response=Response.status(Response.Status.BAD_REQUEST).entity(null).build();
    return response;
}
}

вот конфигурация для развертывания: https://gyazo.com/fed4d79d5d3cb72a820073efd234feb2

для взорвавшихся артефактов: https://gyazo.com/a948f72cff3b89fd86df7d820aa928eb

и для файла войны: https://gyazo.com/7ac6ead33bd6a129a4ad2a7ec537acd0

Веб-сайт Azure: https://faceapibook.azurewebsites.net/

1 Ответ

0 голосов
/ 07 января 2019

Прежде всего, без использования Azure IntelliJ, вы должны убедиться, что ваше приложение будет нормально работать в Tomcat или Jetty на вашей локальной машине.

Затем вы можете следовать двум официальным учебным пособиям ниже, чтобы напрямую развернуть его в Azure в своем плагине IntelliJ с Azure Toolkit.

  1. Создание веб-приложения Hello World для Azure с использованием IntelliJ
  2. Публикация приложения Spring Boot в виде контейнера Docker с помощью набора инструментов Azure для IntelliJ

Кроме того, если вы можете заставить экспортированный файл войны работать на локальном сервере Tomcat, вы также можете следовать разделу Deploy WAR file официального документа Deploy your app to Azure App Service with a ZIP or WAR file, чтобы развернуть файл войны, экспортированный из вашего файла. Проект IntelliJ, а также более подробную информацию смотрите на вики-странице Deploying WAR files using wardeploy.

Даже если вы правильно установили значение версии Java на вкладке Application settings портала Azure, как показано ниже, вы можете загрузить файл war в каталог webapps по пути wwwroot консоли Kudo напрямую в завершите развертывание.

...