Я использую WAS 8.5, RAD 9.0, JAX-RS 1.1, Java EE 1.6, EJB 3.0.Есть WebModule (содержит классы отдыха), EJB Module (содержит все классы реализации EJB).Реализация Rest Webservice с использованием jax-rs и получение NullPointerExpection во время вызова службы PUT.
Ниже приведен мой фрагмент кода:
Сервлет web.xml в веб-модуле, который ссылается на JAX-RS Класс в модуле EJB. (Com.implement.services.RestServiceInvoke)
<servlet>
<description>JAX-RS Tools Generated - Do not modify</description>
<servlet-name>JAX-RS Servlet</servlet-name>
<servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.implement.services.RestServiceInvoke1</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<enabled>true</enabled>
<async-supported>false</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>JAX-RS Servlet</servlet-name>
<url-pattern>/jaxrs/*</url-pattern>
</servlet-mapping>
Класс JAX-RS подобен
Примечание: Нет @ApplicationPath () Annotaion Используется.
public class RestServiceInvoke1 extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(ImplementationRest.class);
return classes;
}
}
Класс интерфейса, например:
Примечание: @Local annotation Включается в класс интерфейса, который также не работает
public interface IStudentServices {
public String getValue(String value);
}
@Stateless
public class StudentServiceBean implements IStudentServices {
@Override
public String getValue(String value){
return value;
}
}
, и класс реализации службы, например:
@Stateless
@Path("partyservices")
@Resource(name="jdbc/dbname", type=DataSource.class)
public class ImplementationRest implements IEmployeeServices {
@EJB
private IStudentServices iStudentSerives;
@PUT
@Path("/setprimary")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Override
public String getValues1(SamplePojo person){
iStudentSerives.getValue("string");
return value;
}
}
iStudnetServices.getValue ("строка") получает исключение NullpointerException.Я имею в виду IStudentServices не вводится из контейнера.Уже прошел через аналогичную ошибку через Интернет, но нет решений.Пожалуйста, помогите мне решить эту проблему.Заранее спасибо.