2011-06-17 21 views
8

でジャスパーを統合しますそれは自分で動作させることは非常に困難でした。私はまた、ルビーフォーラムhttp://www.ruby-forum.com/topic/139453 で話題を読んだことがありますが、詳細は説明されていますが、それでも動作させることはできません。は、私がこのウィキ次<strong>碧玉</strong>と<strong>レール3</strong>アプリを統合しようとしているRailsの3

私の最初の問題はrender_to_string方法と関連している:これは簡単なようですが

def report 
    @customers = Customer.all 
    send_doc(render_to_string(:template => report_customers_path, :layout => false), '/pdfs', 'report.jasper', "customers", 'pdf') 
end 

これはメソッドです:コントローラのメソッドが実行されると が、私は「テンプレートが見つからない」エラーが表示されます私はなぜこれが起こっているのか理解していない。 render_to_stringレイアウト=>偽私はそのアクションの文字列の結果を得るために訴えか? の代わりにというアクションを試しましたが、同じことをします。事前に

この統合により、いくつかの専門知識を持つ誰も助けることができたら... おかげで、 アンドレ

+0

ルビーまたはjrubyで動作していますか? –

+0

ruby​​ -v = ruby​​ 1.9.2p180 – AndreDurao

+0

欠けているテンプレートエラーは何ですか? – recursive

答えて

0

あなたは二つのことをやりたいように、私は碧玉については何も知りませんが、それは聞こえる:レンダリングその後、PDFテンプレートおよび/ PDFのMIMEタイプwのバック生の出力を送信する:あなたはテンプレートパスなどの外部URLを渡しているが、あなたはテンプレートパスに関するエラーを取得している場合には、おそらく間違っている

pdf_contents = render_to_string(:template => 'users/report') 

send_data(pdf_contents, :file_name => 'report.pdf', :type => 'application/pdf') 

。テンプレートパスを最初に修正してください。

@customers.to_xml 
+1

その方法はwikiに基づいていましたが、誰かがwikiページの内容を削除しました(リンク@ 3行目)。 http://oldwiki.rubyonrails.org/rails/pages/HowtoIntegrateJasperReports – AndreDurao

+0

私はWinfieldが正しいと思います。テンプレート値を 'customer/report'(そのリンクの例のようなもの)に変更する必要があります。パスメソッドの代わりに。または、そのオプションをすべて取り除くだけで、render_to_stringは、レポートビューをレンダリングすることが分かるはずです。あなたが正しい "フォーマット"拡張子を持っていることを確認してください。 – janechii

0

してみてください。 xmlを作成するには、xml.erbテンプレートを使用します。 rails3でjaserserverと対話する

url = URI.parse(my_url_string) 
dataxml = render_to_string(:template => my_template_name).gsub(/\n/, '') 
params = {'type' => 'pdf', 'compiledTemplateURI' => my_jasper_file, 'data' => dataxml } 
request = Net::HTTP::POST.new(url.request_uri) 
request.set_form_data(params) 
obj = Net::HTTP.new(url.host, url.port) 
obj.read_timeout = my_timeout_setting 
response = obj.start { |http| http.request(request) } 
case response 
when Net::HTTPOK 
    send_data(response.body, :filename => my_chosen_filename, :type => "application/pdf", :disposition => "inline") 
else 
    raise "failed to generate report" 
end 
1

私たちが実際にレポートを作成するためのJasperReportsを使用して、最近のRails 3.0へのアップグレード:これまでrender_to_string()コードを変更する

0

使用サボン:ジャスパーは、ここで一般的な考えだ、別のGlassFishサーバーで実行を報告します。 例は次のとおりです。

require 'logger' 
require 'savon' 

logger = Logger.new(STDOUT) 
logger.info "Test jasper via Savon-SOAP" 

@client = Savon::Client.new { 
    wsdl.document = "http://localhost:8080/jasperserver/services/repository?wsdl" 
    http.auth.basic "jasperadmin", "jasperadmin" 
} 

logger.info "runReport method" 
begin 
    result = @client.request :run_report do 
    soap.body = "<requestXmlString> 
    <![CDATA[ 
     <request operationName='runReport' > 
     <argument name='RUN_OUTPUT_FORMAT'>PDF</argument> 
     <resourceDescriptor name='' wsType='' uriString='/reports/samples/AllAccounts'  isNew='false'> 
     <label></label> 
    </resourceDescriptor> 
     </request> 
    ]]> 
    </requestXmlString>" 
end 
send_data result.http.raw_body, :type => 'application/pdf', :filename => 'report.pdf', :disposition => 'attachment' 
rescue Exception => e 
    logger.error "SOAP Error: #{e}" 
end 
+1

こんにちはChaarel ...あなたの答えはjasperserverに関連しています。この問題は異なっていました。これは、レポートを生成するためのRuby + Javaシステムコールのアダプタインターフェイスソリューションを含むwiki.rubyonrails.orgの古いwikiページと関連していました。 – AndreDurao

関連する問題

 関連する問題