javax.ejb.Stateless класс не определено - PullRequest
1 голос
/ 19 марта 2012

В настоящее время я пытаюсь выполнить задание веб-службы, данное моим колледжем.

Мое назначение: ..,

Рассмотрим случай, когда у нас есть два веб-сервиса - сервис авиакомпании и турагент и турагент ищет авиакомпанию. Реализуйте этот сценарий, используя веб-службы и базу данных.

Для этого как новичок я попытался выполнить шаги, указанные в по этой ссылке. Я открыл бета-версию Netbeans 2 и точно следовал инструкциям, приведенным в этой ссылке.

Но, пробуя шаги, Deploying and Testing the Web Service, я пытался запустить CalculatorWSApplication, я заметил, что javax.ejb.Stateless не определено.

enter image description here

И у меня три вопроса,

  1. У меня есть базовые знания, JSP, HTML, WEBSERVICE. Пожалуйста, дайте мне некоторую базовую идею / базовую схему назначения, чтобы я мог перейти к следующим шагам и реализации.
  2. Как можно избавиться от отсутствующего файла ejb.
  3. Обычно файлы .java ссылаются на библиотеки, представленные в jre, и почему в этой программе CalculatorWS.java ссылается на этот путь C:\users\MuthuGanapathy\.netbeans\7.0beta2\var\cache\index\s3\java\14\gensrc\javax\

1 Ответ

1 голос
/ 22 марта 2012

Позвольте мне ответить на ваши вопросы:

Прежде всего: на самом деле не требуется знание JSP и HTML для создания веб-сервисов. Если вы заинтересованы в дополнительных знаниях, лучше взгляните на такие темы, как SOAP , WSDL или XML (на которых основаны файлы SOAP и WSDL). Вы можете найти хорошую информацию в w3schools .

Как указано в требовании о назначениях, вы должны объединить свой сервис с базой данных, поэтому вам придется столкнуться с тем фактом, что WebServices не может отправлять каждый вид данных . Например, если вы намереваетесь использовать какой-либо JPA, вы не сможете легко передавать сущности между Клиентом и Сервером через WebService (хотя это возможно).

По этой причине мой подход заключается в отправке простых типов данных между клиентом и сервером и на стороне сервера для создания моих сложных объектов.

Это заставит меня написать не менее 3 классов (по одному для каждого веб-сервиса и один для связи с базой данных).

Авиакомпания WS:

@WebService
public class Airline {

  @WebMethod
  public String stuffToDo {
    // do your stuff
    persistOrSelect(complexObject);
    return "success"; 
  }

  private boolean persistOrSelectData(Object complex) {
    // Database stuff here
    DBdao.doStuff(complex);
    return true;
  }
}

TravelAgent WS:

// same structure as shown above

Класс БД:

public class DBdao {

  public static doStuff(Object complex) {
    // get DB connection and INSERT, SELECT, UPDATE
  }
}

В этом сценарии вам даже не пришлось использовать класс из пакета javax.ejb, но я понимаю, что это может быть необходимо:).
Я на самом деле не использую Netbeans и поэтому могу только строить догадки. Я думаю, что ваши проблемы 2.) и 3.) связаны друг с другом.

Пакет javax.* обычно находится в вашем JDK и должен быть указан в вашей IDE внутри server library/target runtime вашего использования.

  • Вы присвоили server library вашему проекту?
  • Вы пытались указать вашу установку Netbeans на ваш путь JDK, как показано здесь и здесь ?
  • Также возможно, что ваш проект не имеет ссылки на Java System library.

Последнее, но не менее важное:

Существует несколько способов тестирования вашего веб-сервиса:

  1. Вы используете Netbeans, поэтому я предполагаю, что вы развернули свой проект на сервере Glassfish.
    После развертывания вы можете перейти к своему проекту в интерфейсе администратора и щелкнуть ссылку, указывающую на просмотр конечных точек . В следующем окне вы можете перейти по ссылке, указывающей на сгенерированный WSDL или на tester
  2. Вы можете написать свой собственный клиент, либо следуя предоставленному руководству, либо, для более общего подхода, вы можете использовать this .
  3. Используйте soapUI для тестирования (доступно как отдельное приложение или как плагин IDE)

Надеюсь, это поможет, веселитесь!

...