|
|
|
Web-сервисы на eclipse
|
|||
|---|---|---|---|
|
#18+
Добрый день! Пишу небольшой web-сервис на java (eclipse, tomcat) - из java классов создаю wsdl. В ответ необходимо добавить обязательный тег. Создаю новый класс, перечисляю переменные в определенном порядке, геттеры и сеттеры в том же порядке. При формировании wsdl порядок элементов внутри этого тега меняется - сортируются по алфавиту, и элементы, названные с большой буквы именуются теперь с маленькой. Как можно жестко задать порядок элементов внутри тега и чтобы элементы именовались с большой буквы? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 09:12:35 |
|
||
|
Web-сервисы на eclipse
|
|||
|---|---|---|---|
|
#18+
Необходимо в класс добавить jaxb аннотации. Например, чтобы задать порядок элементов, отличный от алфавитного, указываем propOrder, для чего перед названием класса помещаем аннотацию: Код: java 1. Чтобы задать название тега, помещаем соответствующую аннотацию перед полем/геттером: Код: java 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 09:31:12 |
|
||
|
Web-сервисы на eclipse
|
|||
|---|---|---|---|
|
#18+
Для того чтобы заработал механизм аннотаций нужно ли еще что-либо? Потому что добавил аннотации: Код: java 1. и Код: java 1. в импорт добавились классы: import javax.xml.bind.annotation.*; Но ничего не изменилось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 10:12:53 |
|
||
|
Web-сервисы на eclipse
|
|||
|---|---|---|---|
|
#18+
в propOrder должны быть перечислены не результирующие элементы, а свойства вашего класса (property), какими они видны из reflections, то есть, скорее всего, с маленькой буквы. А наименование элемента разве не поменялось? Аннотации с названиями элементов стоят перед геттерами? (если перед полями, то тогда необходимо добавить перед классом аннотацию Код: java 1. , так как по умолчанию доступ к свойствам (XmlAccessType.PROPERTY) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 10:35:12 |
|
||
|
Web-сервисы на eclipse
|
|||
|---|---|---|---|
|
#18+
Ничего, к сожалению, не изменилось. Может быть нужно еще какие-нибудь аннотации указывать? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 13:49:51 |
|
||
|
Web-сервисы на eclipse
|
|||
|---|---|---|---|
|
#18+
Указано Код: java 1. , а аннотации стоят перед геттерами. Если указано XmlAccessType.FIELD, то аннотации с названиями элементов должны стоять перед полями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 14:17:22 |
|
||
|
Web-сервисы на eclipse
|
|||
|---|---|---|---|
|
#18+
Да я уже и так и так пробовал: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Такое ощущение, что eclipse просто не воспринимает аннотации. Может есть какая-либо настройка для их использования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 14:52:05 |
|
||
|
Web-сервисы на eclipse
|
|||
|---|---|---|---|
|
#18+
Если ничего не получается, остается создать XSD для вашего класса, и провести reverse engineering, там все аннотации и поля будут прописаны как надо. Процессор находится в папке jdk/bin. В простейшем случае команда должна выглядеть так: Код: powershell 1. в текущем каталоге будет создан файл "ваш_класс.java" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 15:16:30 |
|
||
|
Web-сервисы на eclipse
|
|||
|---|---|---|---|
|
#18+
С помощью "путь_к_jdk/bin/xjc" ваш_xsd.xsd создался класс. От туда взял аннотации: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. Но при создании wsdl эти аннотации похоже игнорируются :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 12:59:17 |
|
||
|
Web-сервисы на eclipse
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, не правильно указал "name". Должно быть так: Код: java 1. Но результат тот же - не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 14:02:12 |
|
||
|
Web-сервисы на eclipse
|
|||
|---|---|---|---|
|
#18+
Установил eclipse juno и tomcat 7. Сделал пробный проект web-сервиса: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Получил wsdl: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. Но аннотация @XmlElement так и небыла использована, т.е. элементы тега MyStr так и остались с маленьком буквы. Почему аннотации не используются? Может кто-нибудь сталкивался с такой проблемой? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2013, 22:28:05 |
|
||
|
Web-сервисы на eclipse
|
|||
|---|---|---|---|
|
#18+
Может быть необходимо установить JAXB? Только непонятно что именно нужно установить для eclipse? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2013, 09:06:10 |
|
||
|
Web-сервисы на eclipse
|
|||
|---|---|---|---|
|
#18+
Попробовал создать wsdl по тем же двум классам из проекта на weblogic. Результат wsdl: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. и xsd: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Возвращаемые значения теперь стали называться как в аннотациях. Но входное значение теперь называется arg0. Почему так по-разному формируются wsdl из одних и тех же классов? И как же можно использовать аннотации в проекте на tomcat? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 10:43:58 |
|
||
|
Web-сервисы на eclipse
|
|||
|---|---|---|---|
|
#18+
Я не знаток томката, в основном на jboss-е, и там сервисы генерятся нормально. Возможно, ответ заключен в схеме, сгенерированной томкатом: Код: xml 1. 2. - используется что-то сильно устаревшее. JAXB 2.0, аннтотации которого используются для описания названий элементов и т.п., выпущен тоже в 2006 году, но где-то летом, так что скорее всего, этот томкат его не использует. Так что аннотации тут не помогут, надо как-то "навязать" серверу xsd схему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2013, 12:56:23 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38190879&tid=2129696]: |
0ms |
get settings: |
18ms |
get forum list: |
25ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
70ms |
get topic data: |
20ms |
get forum data: |
5ms |
get page messages: |
81ms |
get tp. blocked users: |
3ms |
| others: | 356ms |
| total: | 592ms |

| 0 / 0 |
