Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Префиксы namespace / 12 сообщений из 12, страница 1 из 1
28.08.2013, 14:27:50
    #38379904
thor85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Префиксы namespace
Доброго все времени суток!

Подскажите пожалуйста, кто знает. Имеется веб-сервис на java. Каким образом можно задать префиксы неймспейсов для элементов класса.

Namespaces присваиваются следующим образом:

Код: java
1.
2.
3.
4.
5.
6.
7.
public class ParametrsForServices {	
	@XmlElement(required = true, name = "Message", namespace = "http://sqPref.test.ru")
    public int paramsMessageSD;
	@XmlElement(required = true, name = "MessageData", namespace = "http://sqPref.test.ru")
    public String paramsAppDataSD;	

}



Мы получим в wsdl описании:

xmlns:sqp=" http://sqPref.test.ru"

т.е префикс этого неймспейса будет sqp, а хотелось бы sqPref.
Как с этим бороться?
...
Рейтинг: 0 / 0
28.08.2013, 14:47:00
    #38379921
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Префиксы namespace
Первые несколько ссылок имеют рабочие примеры:
https://www.google.com/search?q=jaxb customize namespace prefix
...
Рейтинг: 0 / 0
28.08.2013, 15:18:42
    #38379982
thor85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Префиксы namespace
package-info я создавал, но это не помогло

package-info

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
@javax.xml.bind.annotation.XmlSchema (
	namespace = "http://sq.prognoz.ru",	
	elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
    xmlns = {
      @javax.xml.bind.annotation.XmlNs(prefix="sqTest", namespaceURI="http://sq.prognoz.ru")
    }		
	
  )  

package com.prognoz.wsclient.sc;



Сервис:

Код: 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.
package com.prognoz.wsclient.sc;

import javax.jws.HandlerChain;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;


@WebService(serviceName = "SCenterService", targetNamespace = "http://sqPref.test.ru")
@HandlerChain(file = "handlers.xml")
public class SCenterService {


	@WebMethod
	@WebResult(name = "testMethod2Response",targetNamespace = "http://sqPref.test.ru")
	public String testMethod1(@WebParam(name = "param1") ParametrsForServices params) throws Exception
	{
		String rez = params.getMessageData()+" "+params.getMessageData();
		
        return rez;
	}
	
	
}



ParametrsForServices.java

Код: 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.
package com.prognoz.wsclient.sc;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(namespace = "http://sqPref.test.ru")
@XmlType(name = "parametrsForServices", propOrder = {
    "paramsMessageSD",
    "paramsAppDataSD"
})
public class ParametrsForServices {	
	@XmlElement(required = true, name = "Message", namespace = "http://sqPref.test.ru")
    public int paramsMessageSD;
	@XmlElement(required = true, name = "MessageData", namespace = "http://sqPref.test.ru")
    public String paramsAppDataSD;	

   
    public String getMessageData() {
        return paramsAppDataSD;
    }
   
    public void setMessageData(String value) {
        this.paramsAppDataSD = value;
    }

	public int getMessage() {
		return paramsMessageSD;
	}

	public void setMessage(int paramsData) {
		this.paramsMessageSD = paramsData;
	}
    

}
...
Рейтинг: 0 / 0
28.08.2013, 15:20:00
    #38379986
thor85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Префиксы namespace
интерсно, то что ответ выдает с заданным префиксом, при генерации запроса это не прокатывает
...
Рейтинг: 0 / 0
28.08.2013, 15:22:24
    #38379992
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Префиксы namespace
NamespacePrefixMapper ?
...
Рейтинг: 0 / 0
28.08.2013, 20:29:55
    #38380338
thor85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Префиксы namespace
Как я смогу использовать NamespacePrefixMapper если неймспейсы задаются аннотациями?
...
Рейтинг: 0 / 0
29.08.2013, 00:59:48
    #38380517
пролетевший
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Префиксы namespace
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class FooNamespacePreffixMapper  extends NamespacePrefixMapper  {

    /*
     *  (non-Javadoc)
     * @see com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper#getPreferredPrefix(java.lang.String, java.lang.String, boolean)
     */
    public String getPreferredPrefix(String namespaceUri, String suggestion, boolean required) {
        if ("http://foo.bar".equals(namespaceUri)) {
            return "";
        } else if ("http://sqPref.test.ru".equals(namespaceUri)) {
            return "sqPref";
        }

        return suggestion;
    }
}
...
Рейтинг: 0 / 0
29.08.2013, 09:34:48
    #38380598
thor85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Префиксы namespace
В таком случае как я смогу применить FooNamespacePreffixMapper к классу ParametrsForServices.java? Мне нужно что бы программа soapUI генерила корректные параметры соап запроса.
...
Рейтинг: 0 / 0
29.08.2013, 09:48:37
    #38380616
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Префиксы namespace
namespace prefix может быть вообще любым валидным для XML формата. Если сервер не может обработать запрос с каким-то другим namespace префиксом, то это бага сервера. Имя префикса задаётся и используется внутри документа. Системам снаружи должно быть всё равно какой там префикс.
...
Рейтинг: 0 / 0
29.08.2013, 10:19:01
    #38380642
thor85
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Префиксы namespace
Это мне известно. Просто все запросы идут через СМЭВ, а у них жесткие требования к префиксам и ни чего с этим поделать нельзя
...
Рейтинг: 0 / 0
29.08.2013, 10:41:56
    #38380671
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Префиксы namespace
thor85В таком случае как я смогу применить FooNamespacePreffixMapper к классу ParametrsForServices.java? Мне нужно что бы программа soapUI генерила корректные параметры соап запроса.
Маппер задаётся в настройка маршалера. Надо погуглить как в JAXWS выдрать маршалер. А при чем тут SOAP UI?
...
Рейтинг: 0 / 0
29.08.2013, 10:42:14
    #38380672
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Префиксы namespace
thor85Это мне известно. Просто все запросы идут через СМЭВ, а у них жесткие требования к префиксам и ни чего с этим поделать нельзя
Мда. Понимаю.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Префиксы namespace / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]