2014-05-14 5 views
2

RESTful 웹 서비스를 만들려고하는데 다음 jar 파일을 추가했지만 import javax.ws.rs.core.MediaType;을 추가하면 빨간색 줄에 밑줄이 그어져 "import javax.ws.rs.core.MediaType;"이 다른 성명과 충돌합니다. . Ctrl + Shift + O를 사용하여 가져 오기를 구성하려고 시도하고 위의 가져 오기를 자동으로 제거합니다. 그 결과 MediaType.TEXT_PLAIN이 인식되지 않습니다. 당신이 당신의 코드를 작성하면서 완전히 모든 유형을 한정하지 않아도미디어 유형 가져 오기가 인식되지 않음

enter image description here

+1

코드에서 볼 수 있듯이 같은 이름의 클래스를 하나씩 가져옵니다. 컴파일러가 어느 쪽을 참조 할 때 어떤 것을 알기를 당신은 어떻게 기대합니까? – njzk2

+1

jersey-server jar에는 MediaType 및 javax.ws.rs 클래스에 대한 구현이 있으므로 javax.ws.rs-api jar를 제거해야한다고 생각합니다. – Ronald91

답변

4

가져 오기 문은 편의가 있습니다.

두 클래스를 모두 가져올 수 있다면 컴파일러는 둘 중 하나를 사용하려고했을 때 어떤 것을 의미하는지 알 수 없습니다.

import java.awt.PageAttributes.MediaType; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
//import javax.ws.rs.core.MediaType; // don't need this anymore 

@Path("/hello") 
public class Hello { 
    @GET 
    @Produces(javax.ws.rs.core.MediaType.TEXT_PLAIN) // fully qualify MediaType 
    public String sayPlainTextHello() { 
     return "Hello, World!"; 
    } 
} 
+0

그레이트 테크닉 bro. –

+0

그건 작품 .. 감사합니다! – Arpan

1

당신은 두 번을 가져온이 같은 이름 충돌의 경우

, 당신은 컴파일러가 javax.ws.rs.core.MediaType에서 떨어져 java.awt.PageAttributes.MediaType을 말하는 방법을 가지고, 그래서 완전히 유형 중 하나를받을 필요가있다. 핵심 MediaType의 경우 import javax.ws.rs.core.MediaType을 가져와야합니다. Page Attributes에 대해서는 import java.awt.PageAttributes.MediaType을 임포트해야한다.

요구 사항에 따라 올바른 것을 선택하십시오.

관련 문제