Ошибка при развертывании веб-службы отдыха

Я новичок в обслуживании веб-сервисов.

Выбрал пример из http://www.mkyong.com/webservices/jax-rs/jersey-hello-world-example/

При нажатии на URL http://localhost:8080/RESTfulExample/rest/hello/mkyong я получаю эту странную ошибку:

enter image description here

И детали:

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

Ответ 1

Я также испытываю это с помощью 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.

Ответ 2

У меня была та же проблема. Если вы используете другой браузер, например Chrome или IE, он будет работать

Ответ 3

Я знаю, наверное, я опаздываю. Хотя я новичок, я хотел бы поделиться тем, как я решаю эту проблему. Так, У меня была такая же ошибка, но я решил это сделать следующие шаги:

  • Откройте веб-браузер (т.е. я использовал Chrome)
  • Откройте главный экран apache tomcat

http://localhost: {port} (по умолчанию в Eclipse, порт: 8080)

  1. Откройте "Приложение менеджера". В моем случае мне нужно было изменить файл tomcat-user.xml, который находится в установке пути Apache (так что у вас будут разрешения менеджера).
  2. Когда вы открываете приложение Диспетчера, вы увидите свой /RESTfulExample в строке. Убедитесь, что он работает
  3. Наконец, напишите в своем веб-браузере

    http://localhost:8080/RESTfulExample/rest/hello/hello%20world

  4. И вы увидите

    Джерси говорит: привет мир

Надеюсь, у вас может быть другое решение в вашем уме

Ответ 4

У меня такая же проблема, и это не ответ, а просто для добавления дополнительной информации в проблему. Я получаю его только в том случае, если мой IE 11 находится в режиме совместимости для этого домена /URL.

Если отключить режим совместимости, ответ будет интерпретироваться так, как вы ожидали.