Я хочу создать приложение Restful с помощью ejb, поэтому я создаю db.jar и restful.war.
В db.jar у меня есть:
@Remote public interface DBManagerRemote
А в restful.war у меня есть:
@EJB private DBManagerRemote manager;
Но когда я развертываюсь в Glassfish, я получаю исключение:
org.jboss.resteasy.spi.UnhandledException: java.lang.NullPointerException
Что я делаю неправильно?
web.xml:
<web-app xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version = "3.0">
<display-name>Restful Web Application</display-name>
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
persistence.xml в db.jar:
<?xml version = "1.0" encoding = "UTF-8"?>
<persistence version = "2.0" xmlns = "http://java.sun.com/xml/ns/persistence"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name = "simpleFactory" transaction-type = "JTA">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<jta-data-source>source_name</jta-data-source>
<class>Mybean</class>
</persistence-unit>
</persistence>




Вы получаете исключение NullPointerException, потому что пытаетесь использовать инъекцию контейнера в приложении REST, которое использует RestEasy в GlassFish.
RestEasy не интегрирован со GlassFish, поэтому инъекции никогда не произойдет.
Самое простое решение для вас:
добавьте стандартный код начальной загрузки JAX-RS в свое веб-приложение:
@ApplicationPath("/")
public class JAXRSConfiguration extends Application {
}
Затем будет использоваться реализация JAX-RS, встроенная в GlassFish.
Слишком мало информации, чтобы определить, в чем проблема. где возникает исключение? в каком отдыхе-сервисе? как вы определили конечную точку отдыха? трассировка исключений и т. д.