Статьи

Створення Web-клієнта за допомогою Eclipse Web Tools Platform

  1. Кілька слів про цьому посібнику Процес побудови додатків за допомогою архітектури J2EE® для деяких...
  2. про автора
  3. Схема бази даних
  4. Таблиця 1. PERSON
  5. Таблиця 2. AUCTION_ITEM
  6. Створення таблиць бази даних
  7. огляд
  8. Налаштування Eclipse для Tomcat 4.1
  9. Створення нового динамічного Web-проекту, продовження
  10. Огляд вихідного коду
  11. Імпорт вихідного коду
  12. Імпорт вихідного коду, продовження
  13. Про метод з'єднання з базою даних
  14. Методи Web-сервісу
  15. метод пошуку
  16. Створення Web-сервісу з Java-файлів, частина 1
  17. Створення Web-сервісу з Java-файлів, частина 2
  18. Створення Web-сервісу з Java-файлів, частина 3
  19. Створення Web-сервісу з Java-файлів, частина 4
  20. резюме
  21. Ресурси для скачування

Кілька слів про цьому посібнику

Процес побудови додатків за допомогою архітектури J2EE® для деяких програмістів може бути досить складним. Для спрощення розробки в цьому середовищі Eclipse Web Tools Platform надає базовий набір інструментів.

У цьому керівництві ми розповімо про те, як за допомогою Eclipse Web Tools Platform створити простий Web-сервіс. Ми створимо простий Web-сервіс для онлайн-аукціону, який взаємодіє з базою даних Cloudscape (Apache Derby). Підсумковий Web-сервіс буде розміщений на сервері Tomcat 4.1. В якості альтернативи до керівництва включені інструкції по переміщенню прикладу в середу IBM DB2® Universal Database ™ Express V8.2 і IBM WebSphere® Application Server Express 5.1.

Перед створенням проекту рекомендуємо вам подивитися робочу демо-версію програми на сайті IBM alphaWorks: Auction Web Service and Web Client Demo. Для перегляду натисніть View Demo.

У цьому посібнику ми обмежимося перерахуванням товарів аукціону (лотів) та здійсненням запитів до сервера аукціону. Реалізацію інших функцій, таких як реєстрація користувача і прийом ставок на торгах ми пропонуємо вам виконати самостійно в якості вправи.

Необхідна програмне забезпечення

Для роботи з керівництвом вам необхідні наступні продукти:

Вам також необхідно завантажити архів dw-wtp-ws-svr.zip , В якому містяться файли сценаріїв і вихідний код, який використовується в керівництві.

Керівництво призначене для користувачів, що мають базові навички Java-програмування. У вихідні включені не всі файли, частина реалізації повинна бути виконана користувачем самостійно.

про автора

Майкл Донаги (Michael Donaghy) є розробником рішень IBM Solutions Builder Express Portfolio Development в RTP, штат Північна Кароліна. У компанії IBM Майкл займався рішеннями для корпорацій і компаній середнього розміру. Має ступінь Магістра комп'ютерних наук, отриману в Університеті штату Північна Кароліна. У вільний час захоплюється водними лижами.

Отримати технічну інформацію і відповіді на питання, висловити коментарі по керівництву можна, зв'язавшись з автором за адресою [email protected] або натиснути для цієї мети кнопку Feedback у верхній частині екрану.

Схема бази даних

Сервер аукціону використовує дві таблиці бази даних. У промисловій версії додатка аукціону застосовується більш складна схема, яка містить додаткові таблиці (наприклад, записи про ставки).

Таблиця 1. PERSON

Ім'я стовпця Тип даних Додатково PERSON_ID INTEGER PK, AUTO-INCREMENT PERSON_NAME VARCHAR (40) ADDRESS1 VARCHAR (80) ADDRESS2 VARCHAR (80) NULLABLE CITY VARCHAR (40) STATE VARCHAR (2) ZIP VARCHAR (10) EMAIL VARCHAR (40) PASSWORD VARCHAR (20) NICKNAME VARCHAR (20)

Таблиця 2. AUCTION_ITEM

Ім'я стовпця Тип даних Додатково AUCTION_ID INTEGER PK, AUTO-INCREMENT START_TIME TIMESTAMP END_TIME TIMESTAMP MIN_PRICE DECIMAL (12,2) CUR_PRICE DECIMAL (12,2) BID_CNT INTEGER SELLER_ID INTEGER BUYER_ID INTEGER SHORT_NAME VARCHAR (80) ITEM_DESC VARCHAR (32000)

Створення таблиць бази даних

У файлі dw-wtp-ws-svr.zip містяться три скрипта. Скрипт auctionsvr-create.ddl, створює необхідні таблиці. Скрипт auctionsvr-populate.sql дозволяє наповнити таблиці прикладами даних. Скрипт auctionsvr-drop.ddl дозволяє видалити таблиці, створені в цій статті.

Для оточення Cloudscape 10:

  1. У командному рядку виконайте наступні дії:
    1. Змініть директорію на <Cloudscape 10.0 install directory> \ frameworks \ embedded \ bin
    2. Запустіть файл setEmbeddedCP.bat
    3. Запустіть файл ij.bat
  2. У рядку ij> введіть:
    1. connect 'jdbc: derby: c: \ path \ AUCTIONDB; create = true'; (Де c: \ path \ - шлях для створення бази даних)
    2. run 'c: \ path \ auctionsvr-create.ddl'; (Де c: \ path \ - шлях до файлу скрипта auctionsvr-create)
    3. run 'c: \ path \ auctionsvr-populate.sql'; (Де c: \ path \ - шлях до файлу скрипта auctionsvr-populate.sql)

Для середовища DB2:

Відкрийте командне вікно DB2 і запустіть наступні команди:

  1. db2 create database auct_svr
  2. db2 connect to auct_svr
  3. db2 -tvf c: \ path \ auctionsvr-create.ddl (де c: \ path \ - шлях до файлу скрипта auctionsvr-create.ddl)
  4. db2 -tvf c: \ path \ auctionsvr-populate.sql (де c: \ path \ - шлях до файлу скрипта auctionsvr-populate.sql)

огляд

Існують два способи створення Web-сервісу. У першому використовується WSDL-файл і створюється вихідний скелет на Java, в другому береться Java-код і створюється WSDL-файл. У цьому посібнику ми розглянемо другий спосіб.

В кінцевому підсумку ми виконаємо наступні дії (з докладними інструкціями):

  1. Запустимо Eclipse і налаштуємо його для Tomcat 4.1
  2. Створимо новий динамічний Web-проект (який буде містити Web-сервіс)
  3. Створимо Java-код з методами public, що забезпечують деякі сервіси
  4. Створимо Web-сервіс з файлів .java
  5. Запустимо Web Services Explorer або створимо Web Service Client

В наступній частині керівництва розповідається про створення простого Web-сервісу онлайн-аукціону за допомогою Eclipse з Web Tools Platform. В якості альтернативи Eclipse Web Tools Platform може бути використана платформа IBM Rational® Web Developer для WebSphere версії 6.0. Докладні інструкції описують методику отримання списку торгів аукціоні, включаючи деякі властивості кожного торгу.

Налаштування Eclipse для Tomcat 4.1

  1. Запустіть Eclipse.
  2. Виберіть Window> Preferences.
  3. Виберіть Server> Installed Runtimes.
  4. Натисніть Add ...
  5. Виберіть Apache> Apache Tomcat v4.1 і натисніть Next.
  6. Задайте властивості (нижче представлені приблизні властивості) і натисніть Finish.
    Name: Apache Tomcat v4.1
    Tomcat installation directory: C: \ Tomcat4130
    JRE: j2re1.4.2_05
  7. Діалогове вікно Preferences має виглядати наступним чином:
  8. У діалоговому вікні Preferences натисніть OK.

Створення нового динамічного Web-проекту

Наступним кроком буде створення динамічного Web-проекту. В кінцевому підсумку проект буде містити Java-код, що викликається Web-сервісом, а також різні Web-дескриптори.

  1. Виберіть File> New> Other.
  2. Виберіть Web> Dynamic Web Project і натисніть Next.

Створення нового динамічного Web-проекту, продовження

Вкажіть наступні параметри і натисніть Finish.
Name: AuctionSvr
Web version: 2.3
Target Server: Apache Tomcat v4.1
Add module to an EAR project: Прибрати позначку

1   Add module to an EAR project: Прибрати позначку

Огляд вихідного коду

файл dw-wtp-ws-svr.zip містить повний вихідний код для прикладів, використовуваних в керівництві, включаючи кілька файлів в пакеті com.ibm.sample.auctionsvr.ws. В наступній частині керівництва буде розказано про те, як їх імпортувати.

У пакет включені наступні класи:

  • AuctionInfo: Bean-компонент з полями auctionId, startTime, endTime, minPrice, curPrice, bidCount, sellerId, seller, buyerId, buyer shortName і itemDesc
  • AuctionListItem: Bean-компонент з полями: auctionId, shortName, currentPrice, endTime і status
  • Credentials: Bean-компонент з полями: eMail і password
  • PersonInfo: Bean-компонент з полями: eMail, name, nickname, address1, address2, city, state і zip
  • AuctionService: Bean-компонент з наступними методами:
    • createAuction (Credentials, AuctionInfo): створює новий аукціон
    • getAuctions (sellerId, auctionStatus): Повертає список аукціонів (AuctionListItem) для окремого продавця на основі статусу (OPEN, CLOSED, ALL)
    • getAuctionInfo (auctionId): Повертає детальний опис аукціону (AuctionInfo)
    • searchAuctions (shortDescription): Повертає список аукціонів (AuctionListItem), що містять заданий критерій пошуку

Методи в класі AuctionService викликаються структурою Web-сервісу. Параметри методів і типи значень, що повертаються можуть бути примітивами (наприклад integer або string) або типами даних з безліччю властивостей.

Параметри методів і типи значень, що повертаються можуть бути примітивами (наприклад integer або string) або типами даних з безліччю властивостей

Імпорт вихідного коду

  1. Розпакуйте вихідний код з файлу dw-wtp-ws-svr.zip в окрему папку (наприклад C: \ temp).
  2. В Eclipse перейдіть в перспективу Java (Window> Open Perspective> Other ...> Java).
  3. Правою кнопкою виберіть папку Java Source проекту AuctionSvr і натисніть Import.
  4. Виберіть File system а потім натисніть Next.
  5. В папці From задайте місце розташування розпакованих раніше файлів з вихідними кодами (наприклад: C: \ temp). Якщо ви ввели шлях до директорії вручну без використання кнопки Browse, натисніть кнопку tab і інформація в лівому вікні оновиться.
  6. Виберіть папку com / ibm / sample / auctionsvr / ws а потім натисніть Finish.

Імпорт вихідного коду, продовження

В оточенні Cloudscape 10 імпортуйте файл derby.jar в папку WebContent / lib. Файл derby.jar автоматично додасться в шлях класу проекту. Якщо ви використовуєте DB2, замість файлу derby.jar візьміть файл db2jcc.jar.

Вікно Package Explorer має виглядати наступним чином:

Про метод з'єднання з базою даних

Для здійснення з'єднань з базою даних в прикладі використовуються статичні змінні і метод, представлені нижче. Зверніть увагу, що існують альтернативи цим методом, наприклад JNDI. У статті developerWorks під назвою "Integrating Cloudscape and Tomcat" (див. Ресурси) пояснюється, як використовувати JNDI з Tomcat і Cloudscape 5.1. Подібні спільні концепції застосовні і до Cloudscape 10.

private String JDBC_DRIVER_CLASS = "org.apache.derby.jdbc.EmbeddedDriver"; private String AUCTION_JDBC_URL = "jdbc: derby: c: \\ auctiondb; create = true"; private Connection getDbConnection () {Connection connection; try {Class.forName (JDBC_DRIVER_CLASS); connection = DriverManager.getConnection (AUCTION_JDBC_URL); } Catch (ClassNotFoundException e) {connection = null; e.printStackTrace (); } Catch (SQLException e) {connection = null; e.printStackTrace (); } Return connection; }

Якщо ви використовуєте DB2, змініть рядки, що містять клас JDBC-драйвера, URL-посилання на JDBC, а також виклик методу DriverManager.getConnection наступним чином:

private String JDBC_DRIVER_CLASS = "com.ibm.db2.jcc.DB2Driver"; private String AUCTION_JDBC_URL = "jdbc: db2: // hostname: 50000 / auct_svr"; ... connection = DriverManager.getConnection (AUCTION_JDBC_URL, AUCTION_DB_USER, AUCTION_DB_PASSWORD);

Методи Web-сервісу

Створення методу, що викликається Web-сервісом, подібно створенню методу, що викликається звичайної Java-програмою. Основна відмінність полягає в тому, що замість списку контейнерів, що містять об'єкти (такі як вектори), використовуються масиви. Використовуючи масиви окремого типу об'єкта замість векторів за допомогою спеціальних інструментів (використовуваних далі) можна описати тип об'єкта, що міститься в списку. Інші методи, які можна викликати за допомогою Web-сервісу, представлені в вихідному коді прикладу. Одного методу, проілюстрованого далі, має бути достатньо для розуміння всієї концепції.

метод пошуку

Тепер опишемо реалізацію методу пошуку. У промислових реалізаціях, де основним фактором є продуктивність програми, приймаються в розрахунок такі параметри як індексація пошуку і продуктивність бази даних. Альтернативний пошук без урахування регістру в базах DB2 описаний в статті developerWorks під назвою "Making DB2 Case-Insensitive") (див. Ресурси).

public AuctionListItem [] searchAuctions (String shortNameText) {AuctionListItem [] alis; alis = new AuctionListItem [0]; Vector vAlis = new Vector (); Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; ResultSetMetaData rsmd = null; try {conn = getDbConnection (); if (null == conn) {return alis; } Final String SEARCH_ITEMS_SQL = "SELECT AUCTION_ID, SHORT_NAME, CUR_PRICE, END_TIME, STATUS FROM AUCTION. AUCTION_ITEM WHERE SHORT_NAME LIKE?"; pstmt = conn.prepareStatement (SEARCH_ITEMS_SQL); final String sns = '%' + shortNameText + '%'; pstmt.setString (1, sns); rs = pstmt.executeQuery (); rsmd = rs.getMetaData (); while (rs.next ()) {AuctionListItem ali = new AuctionListItem (); ali.setAuctionId (rs.getInt (1)); ali.setShortName (rs.getString (2)); ali.setCurrentPrice (rs.getDouble (3)); GregorianCalendar gcEnd = new GregorianCalendar (); gcEnd.setTime (rs.getTimestamp (4)); ali.setEndTime (gcEnd); ali.setStatus (rs.getString (5)); vAlis.add (ali); }} Catch (SQLException e) {e.printStackTrace (); } Finally {try {rs.close (); } Catch (Exception e) {} try {pstmt.close (); } Catch (Exception e) {} try {conn.close (); } Catch (Exception e) {}} alis = new AuctionListItem [vAlis.size ()]; for (int i = 0; i <vAlis.size (); i ++) {alis [i] = (AuctionListItem) vAlis.elementAt (i); } Return alis; }

Створення Web-сервісу з Java-файлів, частина 1

До сих пір ми не виконували ніяких особливих дій з Web-сервісом. Тепер ми опишемо кроки, що дозволяють Web-сервісу викликати Java-код.

  1. Переконайтеся в тому, що файли .java скомпільовані. Для цієї мети натисніть Project> Clean ..., виберіть Clean all projects і натисніть OK.
  2. У пакеті com.ibm.sample.auctionsvr.ws правою кнопкою виберіть AuctionService.java і натисніть Web Services> Create Web Service.
  3. Залиште значення, задані за замовчуванням і натисніть Next.

Створення Web-сервісу з Java-файлів, частина 2

На сторінці Object Selection залиште bean-компонент com.ibm.sample.auctionsvr.ws.AuctionService, заданий за замовчуванням і натисніть Next.

AuctionService, заданий за замовчуванням і натисніть Next

Створення Web-сервісу з Java-файлів, частина 3

Перевірте дані значення для розміщення на стороні сервера, потім натисніть Next.
Web service runtime: Apache Axis 1.0
Server: Tomcat v4.1 Server @ localhost
J2EE version: 1.3
Service project: AuctionSvr

3   Service project: AuctionSvr

Створення Web-сервісу з Java-файлів, частина 4

  1. Ігноруйте попередження про невідповідності WSI Simple SOAP Basic Profile і WSI-Attachment Profile.
  2. Переконайтеся в тому, що обрані методи createAuction, getAuctions, searchAuctions і getAuctionInfo. Відзначте Define custom mapping for package to namespace і натисніть Next.

Створення Web-сервісу з Java-файлів, частина 5

  1. Натисніть Add.
  2. Задайте пару значень package / namespace відповідно: com.ibm.sample.auctionsvr.ws і http: // www. <YourCompany> .com / auctionsvr / ws.
  3. Натисніть Next, дочекайтеся закінчення створення файлів і їх розміщення в Tomcat.
  4. На сторінці On the Web невідзначеними.

Тестування Web-сервісу за допомогою Web Services Explorer, частина 1

  1. Виберіть Run> Launch the Web Services Explorer.
  2. У вікні Web Browser / Web Services Explorer виберіть іконку WSDL Page (друга праворуч).
  3. У вікні Navigator виберіть посилання WSDL Main.
  4. Задайте для WSDL наступний URL: http: // localhost: 8080 / AuctionSvr / wsdl / AuctionService.wsdl. Натисніть Go.

Тестування Web-сервісу за допомогою Web Services Explorer, частина 2

  1. Виберіть операцію getAuctions.
  2. Задайте для seller ID значення 1, Status of ALL і натисніть Go.

Тестування Web-сервісу за допомогою Web Services Explorer, частина 3

Елементи аукціону, імпортовані раніше, з'являться у вікні Status.

Елементи аукціону, імпортовані раніше, з'являться у вікні Status

резюме

У цьому керівництві ми створили Web-сервіс, який взаємодіє з базою даних.

Тепер ви можете створити клієнта Web-сервісу за допомогою Eclipse і Web Tools Platform або IBM Rational Web Developer для WebSphere. У розділі Ресурси знаходяться посилання на інші керівництва developerWorks, що розповідають про розробку Web-клієнта для онлайн-аукціону за допомогою Web Tools і БД Cloudscape.

Робоча демо-версія програми розташована на сайті IBM alphaWorks : Auction Web Service and Web Client Demo. Для перегляду натисніть View Demo.

Ресурси для скачування

Схожі теми

  • Робоча демо-версія програми розташована на сайті IBM alphaWorks : Auction Web Service and Web Client Demo. Для перегляду натисніть View Demo.
  • Інформація про платформу Eclipse Web Tools Platform на сторінці Eclipse Web Tools Platform home page .
  • Інструкція користувача Getting Started guide розповідає, крім усього іншого, про внесок IBM в Eclipse Web Tools Platform.
  • сайт спільноти Apache Tomcat , В якому містяться посилання для завантаження інсталяційного пакета Tomcat.
  • Стаття developerWorks Integrating Cloudscape and Tomcat (DeveloperWorks, Август 2004) описує отримання з'єднання з базою даних за допомогою JNDI.
  • Стаття developerWorks Зняття залежності від регістру символів в DB2 (DeveloperWorks, Лютий 2002) описує безліч способів для здійснення пошуку в DB2 без урахування регістру.
  • Стаття developerWorks про IBM Cloudscape 10.0 (DeveloperWorks, Сентябрь 2004), в якій представлений список змін і доповнень до останньої версії Cloudscape. У статті містяться посилання для завантаження Cloudscape.
  • Супутнє керівництво developerWorks Створення Web-клієнта за допомогою Eclipse Web Tools Platform (DeveloperWorks, листопада 2004) розповідає про створення клієнта онлайн-аукціону, що взаємодіє з базою Cloudscape і Web-сервісом, створеним в даній статті.

Підпишіть мене на повідомлення до коментарів

AUCTION_ITEM WHERE SHORT_NAME LIKE?

Новости