2012-02-18 4 views
3

Я работаю с системой (Salesforce), которая может использовать только файлы WSDL с документами/буквами. Тем не менее, моим клиентам нужно, чтобы я подключался к более старым системам, которые генерируют другие форматы файла WSDL (например, литерал RPC или только литерал doc). Поэтому я часто получаю wsdl-файлы в «недружественных» форматах, и у меня есть Hell Of A Time, пытаясь обуздать его в формате, приемлемом для Salesforce. В принципе, в wsdl не может быть внешних ссылок, и он должен быть завершен документом/документом.Преобразование формата WSDL-файла (Java?)

Итак ... Я думал, что проницательный способ решить эту проблему может состоять в том, чтобы использовать wsdl в Java (jax.ws), а затем программно воссоздать wsdl из Java с помощью одного вызова.

Раньше эта проблема была решена? Если нет, то я на правильном пути? Кто-нибудь решил эту проблему преобразования wsdl раньше? Я предполагаю, что XSLT, вероятно, может сделать работу более умного человека, чем я, но мне нужно работать с мозгом, который был выпущен, и, похоже, он решил узнать минимально возможное о wsdls, чтобы решить эту проблему.

TLDR: могу ли я использовать WSDL с произвольным форматом с помощью java, поэтому я могу создавать WSDL в обернутом формате doc/literal без атрибутов (вместо элементов) и без импорта (полностью автономным WSDL должен быть выход).

Если вы можете помочь мне решить эту проблему, я куплю вам пиццу! Это верно. Я пришлю вам купон papaJohn/Dominos/Pizzahut (или даже позвоните в местный пиццерий и купите его для вас, если вы хотите дать мне домашний адрес/номер телефона, которого вы, вероятно, не знаете).

+0

Почему вы считаете, что один и тот же формат в виде проводов может быть эквивалентно представлен как doc/lit и rpc/lit? – bmargulies

+0

Я не уверен, что понял ваш вопрос. Мое предположение заключается в том, что SOAP является SOAP SOAP, но существует несколько способов определения приемлемого протокола связи для любого данного приложения. Я предположил, что эти несколько способов - это разные форматы wsdl и что я должен иметь возможность конвертировать между ними. Я ошибаюсь? –

+0

Я прочитал ваш комментарий снова, медленнее! Вы говорите, что не могут? ты прав. Я предположил, что они могут. Я ошибаюсь? –

ответ

1

Я могу предложить подход, но вы можете или не можете найти его полезным.

Apache CXF содержит большое количество кода для построения модели сервиса на основе WSDL, а с другой стороны - построения WSDL на основе модели. Вы можете попасть куда-нибудь, начиная с этого кода и пытаясь написать больше кода для сопоставления модели, чтобы получить нужный wsdl.

Я уверен, что ничто из встроенного JAX-WS не поможет вам здесь, но я, конечно, не запомнил его. Вы также можете найти более глубокий набор релевантных знаний в списке рассылки пользователей CXF.

+0

Спасибо за подсказку. Я посмотрю. –

Смежные вопросы