【问题标题】:How to make a servlet accesible on JBoss with GWT and Hibernate如何使用 GWT 和 Hibernate 在 JBoss 上使 servlet 可访问
【发布时间】:2014-07-23 11:06:43
【问题描述】:

我为 JBoss EA 6.1+ 创建了一个使用 GWT 和 JPA(Hibernate) 的动态 Web 项目。

我能够在 JBoss EAP 6.2 和 Eclipse Plugin JBoss Tools (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;
    }
}

EntryPointClass,GWT 在 Button 和 onClick 事件中需要

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 模式,但我无法部署,出现错误“无法启动上下文”。 我的文件夹结构: 战争 com.prototyp 网络信息 部署 库 web.xml 原型.html

有没有人想解决这个问题? 提前感谢您的回答。 朱利安

【问题讨论】:

    标签: jakarta-ee servlets gwt jpa jboss


    【解决方案1】:

    如果显示 404,则为 404。您的服务器不包含资源

    /Prototyp/com.Prototyp/service
    

    确保你的url正确,还要确保服务器成功安装war。

    这不是一个复杂的问题,您只需检查一切是否到位。检查服务器工作目录,创建另一个 servlet taht sais "hello" 并尝试调用它...

    【讨论】:

    • 感谢您的回答,我会尽快尝试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 2023-03-20
    • 2011-11-04
    • 2012-10-01
    • 2015-06-06
    • 1970-01-01
    相关资源
    最近更新 更多