I am new to rest web service.
Picked the example from http://www.mkyong.com/webservices/jax-rs/jersey-hello-world-example/
While hitting the URL http://localhost:8080/RESTfulExample/rest/hello/mkyong
I am getting this strange error :
And the details are :
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.
I am using eclipse kepler and apache tomcat 6
I am also experiencing this with IE. I am using Tomcat 8, jersey for REST with an LDAP security restraint which directs the user to a login page. The login page displays fine, but after authentication, this error persists. Our user base is largely IE users so using Chrome, firefox etc is not really an option (although the site works as expected on them).
Just a note that adding the site to 'Trusted Sites' in IE gets rid of the problem.
A bit of digging into the log file makes it appear as if IE is trying to launch an application (ClickOnce) and expecting a manifest file. This is baffling and perhaps misleading as there is no application at our site. Any help with this is greatly appreciated.
UPDATE: I managed to solve this issue. After reviewing my domain classes it occurred to me that I was not specifying a MIME type for the response. Adding an @Produces("text/html") annotation to my domain (rest) class methods solved the problem:
Example:
@GET
@Produces("text/html")
public Response welcome()
{
return Response.ok("This should now work in IE").build();
}
I guess if IE does not specifically get this mimetype in the response header it assumes you are attempting to deliver an application (ClickOnce). I wish IE would be more like Chrome or Firefox.
I had the same problem. If you use other browser like Chrome or IE, it'll work
I know probably I'm late. Although I am a beginner I would like to share the way I solve this problem. So, I had the same error, but I solved it taking these steps:
http://localhost:{port} (by default in Eclipse, port:8080)
Finally, write in your web browser
http://localhost:8080/RESTfulExample/rest/hello/hello%20world
And you will see
Jersey say : hello world
I hope you can have another solution in your mind
If you experience this with Spring MVC then you may resolve the issue by adding produces = mime type to the @RequestMapping annotation. The result would look similar to this:
...
@RequestMapping(value = "/mapping-address", produces = "text/html;charset=UTF-8")
...
I had this issue when I annotated a method, which returns a String, with @ResponseBody annotation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With