2013-11-08 3 views
3

Я пытаюсь создать новые проекты в Microsoft Project Server 2013 из приложения Java, используя API REST Project Server 2013, но у меня проблемы.Попытка создания проекта в MS Project Server 2013 с Java с использованием REST

Я могу успешно получить файл атом + XML всех проектов с использованием следующего (GET):

String url = "http://<servername>/PWA/_api/ProjectServer/Projects"; 
HttpDigestAuthFilter filter = new HttpDigestAuthFilter("<username>", "<password>"); 
Client client = ClientBuilder.newClient(new ClientConfig()); 
client.register(filter); 
WebTarget target = client.target(url); 
Builder builder = target.request(); 
builder.accept(MediaType.APPLICATION_ATOM_XML); 
InputStream inputStream = builder.get(InputStream.class); 
try { 
    String body = IOUtils.toString(inputStream); 
    System.out.println("body : " + body); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

Однако, я получаю статус = 403, причины = FORBIDDEN, когда я пытаюсь делать POST с помощью следующее:

String url = "http://<servername>/PWA/_api/ProjectServer/Projects"; 
HttpDigestAuthFilter filter = new HttpDigestAuthFilter("<username>", "<password>"); 
Client client = ClientBuilder.newClient(new ClientConfig()); 
client.register(filter); 
WebTarget target = client.target(url); 
Builder builder = target.request(); 
Form form = new Form(); 
form.param("Name", "Test Project"); 
form.param("Title", "Test Project"); 
form.param("Description", "My Test Project from Java"); 
builder.header("X-RequestDigest", "form digest value"); 
builder.header("X-HTTP-Method", "POST"); 
builder.accept("application/json;odata=verbose"); 
Response response = builder.post(Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED_TYPE)); 
System.out.println(response.getStatus() + " : " + response.toString()); 

тот же пользователь успешно способен создавать новые проекты с помощью Project Web App (Project Center) сайта напрямую, но мне нужно, чтобы быть в состоянии сделать это программно из моего приложения Java.

Я попытался (и не смог) использовать WSDL (то есть http: //servername/PWA/_vti_bin/psi/project.asmx? Wsdl), которые поставляются с Project Server, но когда я использовал Axis2 для генерации Java код, сгенерированный Java-код не мог обрабатывать ответы, отправленные обратно с Project Server. Ответ от Project Server будет включать diffgr: diffgram, и, видимо, все, что мне действительно нужно, было в этом. Кроме того, ответ включал дополнительный элемент для Project (PROJ_LAST_CHANGE_TOKEN), который не был в WSDL.

Я также пробовал код C#, включенный в SDK Microsoft Project 2013, но большинство файлов, которые я пробовал, либо не будет компилироваться, либо не работает как есть. Я прочитал несколько форумов, в которых упоминается, что страницы справки веб-сайта Microsoft и пример кода на 2013 год, возможно, были скопированы из Project Server 2010, но хотя фактические API-интерфейсы изменились в период с 2010 по 2013 год, образцы кода и веб-сайты MSDN не были обновлены.

Сможет ли кто-нибудь успешно создавать новые проекты, а затем добавлять новые задачи в существующий проект на Project Server 2013 с Java?

Спасибо

+0

Привет, откуда вы получили API REST? это JAR? – iCode

+0

Здравствуйте, я пытаюсь выполнить код первого фрагмента, чтобы получить все проекты с сервера проекта с https-адресом, и я получаю ответ 403. Есть ли другая реализация при доступе к серверу проекта с https url, вы когда-нибудь пробовали что-то подобное? – jkonst

ответ

2

JSON должен выглядеть следующим образом:

{ 
    'parameters' : { 
    'Id':'e19281cf-e8c8-4dfa-879c-75b8b3619426', 
    'EnterpriseProjectTypeId':'09fa52b4-059b-4527-926e-99f9be96437a', 
    'Name':'Test', 
    'Description':'Test', 
    'Start':'12/27/2013' 
    } 
} 

Идентификатор ваш собственный генерируется GUID. Идентификатор типа проекта предприятия относится к идентификаторам типа проекта вашей фермы.

+0

Есть ли какая-либо документация для этих полезных нагрузок? В официальной документации MS Project Server 2013 упоминаются только HTTP-методы, но ничего о том, как должны выглядеть данные полезной нагрузки. – Gunnar

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

  • Нет связанных вопросов^_^