mzukowski
-
Posts
17 -
Joined
-
Last visited
Content Type
Forum
Downloads
Featured Visualizations
Knowledge Base
Documentation (PDF Downloads)
Blog
Documentation (Test Area)
Documentation
Dr. Jaspersoft Webinar Series
Security Advisories
Events
Profiles
Posts posted by mzukowski
-
-
If anyone is interested, there is now a downloadable JasperServer Ruby client available at: http://rubyforge.org/projects/jasper-client/
Development info is on Github under: http://github.com/gunark/jasperserver-client/tree/master
Usage on rails looks something like:
Code:
Post Edited by Matt Zukowski at 11/12/08 19:01 -
Sorry, that first link should be: http://jasper-client.rubyforge.org
-
There's been some discussion here about this in the past, so I thought I'd let everyone know that I've released a Ruby-based client for JasperServer.
The client is installable as a RubyGem by running:
gem install jasperserver-client
There's a fair bit of information including usage examples available at:
http://jasperserver-client.rubyforge.org
And:
-
Oops those links didn't come through properly.
Link for Ruby client of JasperServer is: http://github.com/gunark/jasperserver-client/wikis/home
Link for tutorial on how to get Flash reports out of JasperServer is: http://github.com/gunark/jasperserver-client/wikis/railsusageexamples
-
If anyone is interested, I posted a quick tutorial on how to get Flash reports from JasperServer under Ruby on Rails.
The tutorial is here: http://github.com/gunark/jasperserver-client/wikis/railsusageexamples
To make this work, you'll need the jasperserver-client RubyGem. Info on installing it is here: http://github.com/gunark/jasperserver-client/wikis/home
-
Thank you, but is there any way to request the report in Flash format using the web services API (since you can already request it in other formats -- PDF, CSV, etc.)
-
The JasperServer 3.0 release notes mention that there is now support for generating reports in flash format. How do I go about generating a flash report? Is it as simple as making a SOAP request with the REPORT_FORMAT set to "SWF"? There is no mention of this in the web services API manual.
-
Variations of this have been posted here, however the old code had some bugs... this version works very well for us:
Here's a usage example (as a Rails controller action method):
Code:
def jasper_for_rails_example
format = params[:format].downcase # e.g. 'PDF'
mimetype = Mime::Type.lookup_by_extension(format)
jasper = JasperClient.new(:username => 'foo', :«»password => 'bar')
data = jasper.jasper.run_report('/foo/bar-report',
format,
'start_date' => Time.parse(params['start_date']),
'end_date' => Time.parse(params['end_date']),
'some_other_param' => params['some_other_param']
)
send_data(data, :type => mimetype)
end -
it looks like whatever it is you're parsing is not a SOAP response from JasperServer but HTML... are you sure you're fetching data from the right URL? And are you sure JasperServer is returning data correctly at that URL (maybe it's replying with a generic "500 Server Error" HTML page at the URL you're querying?)
-
Okay nevermind... I should double-check before I post. Anyway here's a slightly different version of the above monkeypatch. This one should work against soap4r 1.5.8. Also, it adds the instance variable @env to the response object rather than returning an array with the env data. I think this might be a bit safer since it doesn't break the API.
Code:
module SOAP
module RPC
class Proxy
include SOAP
def call(name, *params)
# name must be used only for lookup
op_info = lookup_operation(name)
mapping_opt = create_mapping_opt
req_header = create_request_header
req_body = SOAPBody.new(
op_info.request_body(params, @mapping_registry,
@literal_mapping_registry, mapping_opt)
)
reqopt = create_encoding_opt(
:«»soapaction => op_info.soapaction || @soapaction,
:envelopenamespace => @options["soap.envelope.requestnamespace"],
:default_encodingstyle =>
@default_encodingstyle || op_info.request_default_encodingstyle,
:use_default_namespace =>
op_info.use_default_namespace || @use_default_namespace
)
resopt = create_encoding_opt(
:envelopenamespace => @options["soap.envelope.responsenamespace"],
:default_encodingstyle =>
@default_encodingstyle || op_info.response_default_encodingstyle
)
env = route(req_header, req_body, reqopt, resopt)
if op_info.response_use.nil?
return nil
end
raise EmptyResponseError unless env
receive_headers(env.header)
begin
check_fault(env.body)
rescue ::«»SOAP::FaultError => e
op_info.raise_fault(e, @mapping_registry, @literal_mapping_registry)
end
if @return_response_as_xml
return resopt[:response_as_xml]
else
response_obj = op_info.response_obj(env.body, @mapping_registry,
@literal_mapping_registry, mapping_opt)
response_obj.instance_variable_set(:@env, env)
return response_obj
end
end
end
end
endAnd to use it:
Code: [code]
@driver = SOAP::RPC::«»Driver.new(@url)
@driver.options["protocol.http.basic_auth"] << [@url, @user, @pass]
@driver.add_method('runReport','request')
result = @driver.runReport(request.to_s)
report = result.instance_variable_get(:@env).external_content['report'].data.content -
Okay nevermind... I should double-check before I post. Anyway here's a slightly different version of the above monkeypatch. This one should work against soap4r 1.5.8. Also, it adds the instance variable @env to the response object rather than returning an array with the env data. I think this might be a bit safer since it doesn't break the API.
Code:
module SOAP
module RPC
class Proxy
include SOAP
def call(name, *params)
# name must be used only for lookup
op_info = lookup_operation(name)
mapping_opt = create_mapping_opt
req_header = create_request_header
req_body = SOAPBody.new(
op_info.request_body(params, @mapping_registry,
@literal_mapping_registry, mapping_opt)
)
reqopt = create_encoding_opt(
:«»soapaction => op_info.soapaction || @soapaction,
:envelopenamespace => @options["soap.envelope.requestnamespace"],
:default_encodingstyle =>
@default_encodingstyle || op_info.request_default_encodingstyle,
:use_default_namespace =>
op_info.use_default_namespace || @use_default_namespace
)
resopt = create_encoding_opt(
:envelopenamespace => @options["soap.envelope.responsenamespace"],
:default_encodingstyle =>
@default_encodingstyle || op_info.response_default_encodingstyle
)
env = route(req_header, req_body, reqopt, resopt)
if op_info.response_use.nil?
return nil
end
raise EmptyResponseError unless env
receive_headers(env.header)
begin
check_fault(env.body)
rescue ::«»SOAP::FaultError => e
op_info.raise_fault(e, @mapping_registry, @literal_mapping_registry)
end
if @return_response_as_xml
return resopt[:response_as_xml]
else
response_obj = op_info.response_obj(env.body, @mapping_registry,
@literal_mapping_registry, mapping_opt)
response_obj.instance_variable_set(:@env, env)
return response_obj
end
end
end
end
endAnd to use it:
Code: [code]
@driver = SOAP::RPC::«»Driver.new(@url)
@driver.options["protocol.http.basic_auth"] << [@url, @user, @pass]
@driver.add_method('runReport','request')
result = @driver.runReport(request.to_s)
report = result.instance_variable_get(:@env).external_content['report'].data.content -
I can't get the above code to work... in fact those modifications to SOAP::RPC::Proxy don't make sense for soap4r -- at least not the latest version (1.5.8). What version of Ruby's SOAP libraries is this supposed to work against?
-
Ok looks like adding the following to WEB-INF/classes/jasperreports.properties in the jasperserver.war did the trick:
net.sf.jasperreports.query.executer.factory.xpath2=com.jaspersoft.jrx.query.JRXPathQueryExecuterFactory
However I'm still getting no data filled on the remote server, although that might just be my custom data source service's fault...
-
P.S. I tried adding the jasperreports-exetnsions-1.3.1.jar to the jasperserver.war, and I tried adding the custom property 'net.sf.jasperreports.query.executer.factory.xpath2' for my report to 'com.jaspersoft.jrx.query.JRXPathQueryExecuterFactory', but I'm still getting the error message.
If it helps, here is the full stack trace from the server:
Code:
[#|2007-11-07T12:38:42.476-0500|INFO|sun-appserver9.1|javax.enterprise.system.stream.out|_ThreadID=29;_ThreadName=httpSSLWorkerThread-8080-4;|net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: No query executer factory class registered for xpath2 queries. Create a propery named net.sf.jasperreports.query.executer.factory.xpath2.
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:243)
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:226)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:214)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.compileReport(EngineServiceImpl.java:752)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$CacheableCompiledReports.getData(EngineServiceImpl.java:157)
at com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryCache.saveData(HibernateRepositoryCache.java:179)
at com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryCache.getCachedItem(HibernateRepositoryCache.java:125)
at com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryCache.cache(HibernateRepositoryCache.java:71)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:281)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:187)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:154)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:210)
at $Proxy113.cache(Unknown Source)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.getCompiledReport(EngineServiceImpl.java:762)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.getJasperReport(EngineServiceImpl.java:589)
at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.getMainJasperReport(EngineServiceImpl.java:785)
at com.jaspersoft.jasperserver.ws.axis2.RepositoryHelper.convertParameterValues(RepositoryHelper.java:71)
at com.jaspersoft.jasperserver.ws.axis2.ManagementService.runReport(ManagementService.java:1029)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at com.jaspersoft.jasperserver.war.common.UploadMultipartFilter.doFilter(UploadMultipartFilter.java:86)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at com.jaspersoft.jasperserver.api.metadata.user.service.impl.MetadataAuthenticationProcessingFilter.doFilter(MetadataAuthenticationProcessingFilter.java:136)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:181)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at com.jaspersoft.jasperserver.api.metadata.user.service.impl.JIPortletAuthenticationProcessingFilter.doFilter(JIPortletAuthenticationProcessingFilter.java:87)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:191)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:90)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at com.jaspersoft.jasperserver.war.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:70)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(S|#]
[#|2007-11-07T12:38:42.476-0500|INFO|sun-appserver9.1|javax.enterprise.system.stream.out|_ThreadID=29;_ThreadName=httpSSLWorkerThread-8080-4;|tandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:270)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:361)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: No query executer factory class registered for xpath2 queries. Create a propery named net.sf.jasperreports.query.executer.factory.xpath2.
at org.apache.commons.digester.Digester.createSAXException(Digester.java:2919)
at org.apache.commons.digester.Digester.createSAXException(Digester.java:2945)
at org.apache.commons.digester.Digester.endElement(Digester.java:1133)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.endNamespaceScope(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1647)
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:239)
... 95 more
|#] -
I'm trying to load data from a remote xml data source (via an http URI rather than a local filename).
At first I was having trouble getting the data, but as suggested in previous posts in this forum, I switched the query language from XPath to xpath2, and this did the trick. I'm now able to fill the data in iReport.
However, when I upload my jrxml report to JasperServer and run it there, I get the following error:
1 - net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: No query executer factory class registered for xpath2 queries. Create a propery named net.sf.jasperreports.query.executer.factory.xpath2.
java.lang.Exception: 1 - net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: No query executer factory class registered for xpath2 queries. Create a propery named net.sf.jasperreports.query.executer.factory.xpath2. at com.jaspersoft.jasperserver.irplugin.wsclient.WSClient.runReport(WSClient.java:382) at com.jaspersoft.jasperserver.irplugin.wsclient.WSClient.runReport(WSClient.java:299) at com.jaspersoft.jasperserver.irplugin.ReportRunner.run(ReportRunner.java:78) at java.lang.Thread.run(Thread.java:595)Does this mean that jasperserver cannot run xpath2 queries out of the box? Do I need to provide it with some additional libraries?
-
I'm trying to deploy the jasperserver.war under Glassfish (a.k.a. Sun's JAS 9.0) but I'm getting a whole lot of errors during deployment.
First it complained that the web.xml descriptor had invalid data, and indeed it looks like the web.xml that ships with 1.0.0 violates the web-app 2.4 schema (there's <description> and <display-name> tags where there shouldn't be).
I got all that cleaned up, but now it's complaining about the taglib tags being invalid:
Code:
Deploying application in domain failed; Error loading
deployment descriptors for module [jasperserver] Line
297 Column 13 -- Deployment descriptor file
WEB-INF/web.xml in archive [jasperserver].
cvc-complex-type.2.4.a: Invalid content was found
starting with element 'taglib'. One of
'{"http://java.sun.com/xml/ns/j2ee":description,
"http://java.sun.com/xml/ns/j2ee":display-name,
"http://java.sun.com/xml/ns/j2ee":icon,
"http://java.sun.com/xml/ns/j2ee":distributable,
"http://java.sun.com/xml/ns/j2ee":context-param,
"http://java.sun.com/xml/ns/j2ee":filter,
"http://java.sun.com/xml/ns/j2ee":filter-mapping,
"http://java.sun.com/xml/ns/j2ee":listener,
"http://java.sun.com/xml/ns/j2ee":«»servlet,
"http://java.sun.com/xml/ns/j2ee":«»servlet-mapping,
"http://java.sun.com/xml/ns/j2ee":«»session-config,
"http://java.sun.com/xml/ns/j2ee":mime-mapping,
"http://java.sun.com/xml/ns/j2ee":welcome-file-list,
"http://java.sun.com/xml/ns/j2ee":error-page,
"http://java.sun.com/xml/ns/j2ee":jsp-config,
"http://java.sun.com/xml/ns/j2ee":«»security-constraint,
"http://java.sun.com/xml/ns/j2ee":login-config,
"http://java.sun.com/xml/ns/j2ee":«»security-role,
"http://java.sun.com/xml/ns/j2ee":env-entry,
"http://java.sun.com/xml/ns/j2ee":ejb-ref,
"http://java.sun.com/xml/ns/j2ee":ejb-local-ref,
"http://java.sun.com/xml/ns/j2ee":«»service-ref,
"http://java.sun.com/xml/ns/j2ee":resource-ref,
"http://java.sun.com/xml/ns/j2ee":resource-env-ref,
"http://java.sun.com/xml/ns/j2ee":message-destination-ref,
"http://java.sun.com/xml/ns/j2ee":message-destination,
"http://java.sun.com/xml/ns/j2ee":locale-encoding-mapping-list}'
is expected. Error loading deployment descriptors for
module [jasperserver] Line 297 Column 13 -- Deployment
descriptor file WEB-INF/web.xml in archive
[jasperserver]. cvc-complex-type.2.4.a: Invalid
content was found starting with element 'taglib'. One
of '{"http://java.sun.com/xml/ns/j2ee":description,
"http://java.sun.com/xml/ns/j2ee":display-name,
"http://java.sun.com/xml/ns/j2ee":icon,
"http://java.sun.com/xml/ns/j2ee":distributable,
"http://java.sun.com/xml/ns/j2ee":context-param,
"http://java.sun.com/xml/ns/j2ee":filter,
"http://java.sun.com/xml/ns/j2ee":filter-mapping,
"http://java.sun.com/xml/ns/j2ee":listener,
"http://java.sun.com/xml/ns/j2ee":«»servlet,
"http://java.sun.com/xml/ns/j2ee":«»servlet-mapping,
"http://java.sun.com/xml/ns/j2ee":«»session-config,
"http://java.sun.com/xml/ns/j2ee":mime-mapping,
"http://java.sun.com/xml/ns/j2ee":welcome-file-list,
"http://java.sun.com/xml/ns/j2ee":error-page,
"http://java.sun.com/xml/ns/j2ee":jsp-config,
"http://java.sun.com/xml/ns/j2ee":«»security-constraint,
"http://java.sun.com/xml/ns/j2ee":login-config,
"http://java.sun.com/xml/ns/j2ee":«»security-role,
"http://java.sun.com/xml/ns/j2ee":env-entry,
"http://java.sun.com/xml/ns/j2ee":ejb-ref,
"http://java.sun.com/xml/ns/j2ee":ejb-local-ref,
"http://java.sun.com/xml/ns/j2ee":«»service-ref,
"http://java.sun.com/xml/ns/j2ee":resource-ref,
"http://java.sun.com/xml/ns/j2ee":resource-env-ref,
"http://java.sun.com/xml/ns/j2ee":message-destination-ref,
"http://java.sun.com/xml/ns/j2ee":message-destination,
"http://java.sun.com/xml/ns/j2ee":locale-encoding-mapping-list}'
is expected.This is a bit out of my league, so I'm wondering if someone could take a look at the web.xml file and see what's wrong with it. I suspect that it was written to work with Tomcat, which is perhaps more lax with parsing a non-web-app-2.4-compliant descriptor...
Post edited by: mzukowski, at: 2006/09/05 21:45
PHP client for JasperServer (via SOAP)
in Products
Posted
If anyone is interested, I just posted code for a simple PHP client for fetching reports from JasperServer via SOAP.
See here: http://sneakybits.blogspot.com/2008/11/php-client-for-jasperserver-via-soap.html
and here: http://pastebin.com/f65edd4c8
Post Edited by Matt Zukowski at 11/12/08 18:59