Ошибка при развертывании остальных веб-сервисов
Я новичок, чтобы отдохнуть веб-сервис.
Взял пример с http://www.mkyong.com/webservices/jax-rs/jersey-hello-world-example/
При нажатии на URL http://localhost:8080/RESTfulExample/rest/hello/mkyong
Я получаю эту странную ошибку:
И детали:
PLATFORM VERSION INFO
Windows : 6.1.7601.65536 (Win32NT)
Common Language Runtime : 4.0.30319.1022
System.Deployment.dll : 4.0.30319.1 (RTMRel.030319-0100)
clr.dll : 4.0.30319.1022 (RTMGDR.030319-1000)
dfdll.dll : 4.0.30319.1 (RTMRel.030319-0100)
dfshim.dll : 4.0.31106.0 (Main.031106-0000)
SOURCES
Deployment url : http://localhost:8080/rs1/rest/hello/hi,
ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of http://localhost:8080/rs1/rest/hello/hi, resulted in exception. Following failure messages were detected:
+ Exception reading manifest from http://localhost:8080/rs1/rest/hello/hi,: the manifest may not be valid or the file could not be opened.
+ Data at the root level is invalid. Line 1, position 1.
COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.
WARNINGS
There were no warnings during this operation.
OPERATION PROGRESS STATUS
* [9/16/2014 11:30:26 AM] : Activation of `http://localhost:8080/rs1/rest/hello/hi`, has started.
ERROR DETAILS
Following errors were detected during this operation.
* [9/16/2014 11:30:26 AM] System.Deployment.Application.InvalidDeploymentException (ManifestParse)
- Exception reading manifest from http://localhost:8080/rs1/rest/hello/hi,: the manifest may not be valid or the file could not be opened.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirectBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
--- Inner Exception ---
System.Xml.XmlException
- Data at the root level is invalid. Line 1, position 1.
- Source: System.Xml
- Stack trace:
at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
at System.Deployment.Application.ManifestValidatingReader.XmlFilteredReader.Read()
at System.Xml.XmlCharCheckingReader.Read()
at System.Xml.XsdValidatingReader.Read()
at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.
Я использую Eclipse Kepler и Apache Tomcat 6
5 ответов
Я также испытываю это с IE. Я использую Tomcat 8, майку для REST с ограничением безопасности LDAP, которое направляет пользователя на страницу входа. Страница входа отображается нормально, но после аутентификации эта ошибка сохраняется. Наша пользовательская база в основном состоит из пользователей IE, поэтому использование Chrome, Firefox и т. Д. На самом деле не вариант (хотя сайт работает на них так, как ожидалось).
Просто обратите внимание, что добавление сайта в "Надежные сайты" в IE избавляет от проблемы.
Немного копаясь в файле журнала, создается впечатление, что IE пытается запустить приложение (ClickOnce) и ожидает файл манифеста. Это сбивает с толку и, возможно, вводит в заблуждение, поскольку на нашем сайте нет приложений. Любая помощь в этом с благодарностью.
ОБНОВЛЕНИЕ: мне удалось решить эту проблему. После просмотра классов моего домена мне пришло в голову, что я не указываю тип MIME для ответа. Добавление аннотации @Produces("text/html") в методы моего домена (остальные) решило проблему:
Пример:
@GET
@Produces("text/html")
public Response welcome()
{
return Response.ok("This should now work in IE").build();
}
Я предполагаю, что если IE не получает этот mimetype в заголовке ответа, он предполагает, что вы пытаетесь доставить приложение (ClickOnce). Я бы хотел, чтобы IE был больше похож на Chrome или Firefox.
У меня такая же проблема. Если вы используете другой браузер, такой как Chrome или IE, он будет работать
Если вы столкнулись с этим в Spring MVC, вы можете решить эту проблему, добавив тип works = mime к аннотации @RequestMapping. Результат будет выглядеть примерно так:
...
@RequestMapping(value = "/mapping-address", produces = "text/html;charset=UTF-8")
...
У меня была эта проблема, когда я аннотировал метод, который возвращает строку, с аннотацией @ResponseBody.
Я знаю, наверное, я опоздал. Хотя я новичок, я хотел бы поделиться тем, как я решаю эту проблему. Итак, у меня была та же ошибка, но я решил ее, приняв следующие меры:
- Откройте ваш веб-браузер (т.е. я использовал Chrome)
- Откройте главный экран Apache Tomcat
http://localhost/:{port} (по умолчанию в Eclipse, порт:8080)
- Откройте "Менеджер приложений". В моем случае мне нужно было изменить файл tomcat-user.xml, который находится в пути установки Apache (так что у вас будут права администратора).
- Когда вы откроете приложение de Manager, вы увидите ваш /RESTfulExample в ряд. Убедитесь, что он работает
Наконец, напишите в своем веб-браузере
HTTP: // локальный: 8080 /RESTfulExample / отдых / привет / привет% 20world
И вы увидите
Джерси сказал: привет мир
Я надеюсь, что вы можете иметь другое решение в своем уме
У меня та же проблема, и это не ответ, а просто добавить больше информации к проблеме. Я получаю это только если мой IE 11 находится в режиме совместимости для этого домена / URL.
Если я отключу режим совместимости, ответ будет интерпретирован так, как вы ожидаете.