我创建了一个动态Web项目,它使用GWT和JPA(Hibernate)来实现JBoss EA 6.1 +。
我能够在JBoss EAP 6.2和Eclipse插件JBoss工具(Kepler)4.1.2上部署和启动我的应用程序。
但是当我触发使用我的servlet时,我收到以下错误消息: 请求的资源(/Prototyp/com.Prototyp/service)不可用。 HTTP错误404 下面的代码和配置文件。
战争 - > WEB-INF-> web.xml
<servlet>
<servlet-name>ReceiveDB2Service</servlet-name>
<servlet-class>com.server.ReceiveDB2ProtokollServiceImpl</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ReceiveDB2Service</servlet-name>
<url-pattern>/service</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>Prototyp.html</welcome-file>
</welcome-file-list>
我的服务界面
@RemoteServiceRelativePath("service")
public interface ReceiveDB2ProtokollService extends RemoteService {
public ArrayList<ProtokollDatei> getProtokollFromDB2(String idString);
}
服务实施
public class ReceiveDB2ProtokollServiceImpl extends RemoteServiceServlet implements ReceiveDB2ProtokollService {
private static final long serialVersionUID = 8871154557738322951L;
@PersistenceContext(unitName = "Prototyp", type = PersistenceContextType.TRANSACTION)
private EntityManager markog04;
@Override
public ArrayList<ProtokollDatei> getProtokollFromDB2(String idString) {
Query q = markog04.createNamedQuery("ProtokollDatei.findByQId");
q.setParameter("id", 10447227393L);
ArrayList<ProtokollDatei> protokollListe = (ArrayList<ProtokollDatei>) q.getResultList();
return protokollListe;
}
}
在Button和onClick事件中GWT需要的EntryPointClass
public class Prototyp implements EntryPoint {
private TextBox userInput = new TextBox();
private Button searchButton = new Button("Suchen");
private VerticalPanel vertiPanel = new VerticalPanel();
@Override
public void onModuleLoad() {
final AsyncCallback<ArrayList<ProtokollDatei>> protokollCallBack = new AsyncCallback<ArrayList<ProtokollDatei>>() {
@Override
public void onFailure(Throwable caught) {
vertiPanel.add(new Label("onFailure:"));
vertiPanel.add(new Label(caught.getMessage()));
}
@Override
public void onSuccess(ArrayList<ProtokollDatei> result) {
vertiPanel.add(new Label("onSuccess " + result.size()));
}
};
searchButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
ReceiveDB2ProtokollServiceAsync service = GWT.create(ReceiveDB2ProtokollService.class);
service.getProtokollFromDB2(userInput.getText(), protokollCallBack);
}
});
}
}
最后但并非最不重要的,来自persistence.xml
<persistence-unit name="Prototyp">
<jta-data-source>java:/datasources/markog04</jta-data-source>
<class>com.shared.ProtokollDatei</class>
</persistence-unit>
我已经尝试更改web.xml中的url-pattern,但是我可以部署错误&#34;无法启动上下文&#34;。 我的文件夹结构: 战争 com.Prototyp WEB-INF 部署 LIB web.xml中 Prototyp.html
有没有人想解决这个问题? 提前感谢您的回答。 儒略
答案 0 :(得分:0)
如果是404,那么它是404.你的服务器不包含资源
/Prototyp/com.Prototyp/service
确保您的网址正确无误,同时确保服务器成功安装了战争。
这不是一个复杂的问题,你只需检查一切是否到位。检查服务器工作目录,创建另一个servlet taht sais&#34; hello&#34;并尝试称之为......