簡體   English   中英

jax-rs和服務器名稱

[英]jax-rs and server name

我仍在jax-rs服務器上工作,最近遇到了一些新問題。 我不知道在哪里定義我的Web服務器的名稱。 我搜索了工作區中的所有內容,但找不到任何內容。 讓我們進一步解決這個問題:

我總是通過http://XXXXXX.XXXXX.XXX-XXXXXXX.de/android/訪問服務器的http://XXXXXX.XXXXX.XXX-XXXXXXX.de/android/方法

這是我的服務器類的結構:

@Path("/users")
public class UserResource {

Connection dbconn = null;

public UserResource() {
    userIds = new ArrayList<Integer>();
    userIds.add(1);
    userIds.add(2);
    userIds.add(3);
}

@GET
@Path("/login/{id}")
@Consumes("application/xml")
public StreamingOutput getTests(@PathParam("id") int id, InputStream is) {
    return new StreamingOutput() {
        public void write(OutputStream outputStream) throws IOException,
                WebApplicationException {
            getTests(outputStream);
        }
    };
}

如您所見,我的類的路徑為“ / users”,@ GET方法的路徑為“ / login / 1”(例如id = 1)。 現在我嘗試通過調用該方法

http://XXXXXX.XXXXX.XXX-XXXXXXX.de/android/users/login/1

但這是行不通的。 我收到錯誤消息(來源不明)。 而且我的error.log說它找不到資源

http://XXXXXX.XXXXX.XXX-XXXXXXX.de/users/users/login/1

我的第一個問題:雙重“ / users”來自哪里? 我不知道。 當我在請求URL中保留“ / users”時,error.log中將只有1個“ / users”,但是仍然找不到資源。

我還沒有發現另一件事:如何更改服務名稱? Atm,它是“ android”,但是我該如何更改? 我搜索了整個工作區,在pom.xml中找到了“ android”,但是當我將其更改為“ testandroid”時,上傳所有內容,構建並運行服務器,名稱仍然是android。 不知道為什么會這樣。

謝謝您的幫助!

編輯:這是我的“主要”課程:

package com.restfully.services;

import javax.ws.rs.core.Application;
import java.util.HashSet;
import java.util.Set;

public class ServerApplication extends Application {
   private Set<Object> singletons = new HashSet<Object>();
   private Set<Class<?>> empty = new HashSet<Class<?>>();

   public ServerApplication() {
      singletons.add(new UserResource());
   }

   @Override
   public Set<Class<?>> getClasses() {
      return empty;
   }

   @Override
   public Set<Object> getSingletons() {
      return singletons;
   }
}

我正在使用Eclipse和Maven。 該應用程序在碼頭服務器上運行。 如果您可以使用任何其他信息,請告訴我。

您可以在以下地方查看

用於上下文根的Pom.xml文件包含以下條目;

<configuration>
    <context>yourWarName</context>
</configuration>

使用Netbeans,在項目屬性下檢查“運行類別”上下文路徑。

Context Path: /yourWarName  

也查看您的web.xml

當使用jax-rs時,通常定義一個config類。

@ApplicationPath("resources")
public class RestConfig extends Application{

}

從那里定義其他路徑;

    @Stateless
    @Path("/login")
    public class LoginResource

    public Response login(Credentials credentials) {
    Credentials result = this.loginService.login(credentials);
            return Response.status(Response.Status.OK).entity(result).build();
     }

以下內容的路徑是: http : //domain.com/MyApp/resources/login其中MyApp是上下文根。

可能是在config或root中指定了一個路徑,其名稱為獲得雙重用戶的用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM