Why do I get RTSP/1.0 404 Not Found? - rtsp
This is my RTSP conversation:
ANNOUNCE rtsp://216.224.181.197/bstream.sdp RTSP/1.0
CSeq: 1
Content-Type: application/sdp
User-Agent: C.U.
Authorization: Digest username="gidon", realm="null", nonce="null", uri="/bstream.sdp", response="239fcac559661c17436e427e75f3d6a0"
Content-Length: 313
v=0
s=CameraStream
m=video 5006 RTP/AVP 96
b=RR:0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=42000c;sprop-parameter-sets=Z0IADJZUCg+I,aM44gA==;
a=control:trackID=0
m=audio 5004 RTP/AVP 96
b=AS:128
b=RR:0
a=rtpmap:96 AMR/8000
a=fmtp:96 octet-align=1;
a=control:trackID=1
RTSP/1.0 401 Unauthorized
Server: DSS/6.0.3 (Build/526.3; Platform/Linux; Release/Darwin Streaming Server; State/Development; )
Cseq: 1
WWW-Authenticate: Digest realm="Streaming Server", nonce="e5c0b7aff71820962027d73f55fe48c8"
ANNOUNCE rtsp://216.224.181.197/bstream.sdp RTSP/1.0
CSeq: 2
Content-Type: application/sdp
User-Agent: C.U.
Authorization: Digest username="gidon", realm="Streaming Server", nonce="e5c0b7aff71820962027d73f55fe48c8", uri="/bstream.sdp", response="6e3aa3be3f5c04a324491fe9ab341918"
Content-Length: 313
v=0
s=CameraStream
m=video 5006 RTP/AVP 96
b=RR:0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=42000c;sprop-parameter-sets=Z0IADJZUCg+I,aM44gA==;
a=control:trackID=0
m=audio 5004 RTP/AVP 96
b=AS:128
b=RR:0
a=rtpmap:96 AMR/8000
a=fmtp:96 octet-align=1;
a=control:trackID=1
RTSP/1.0 200 OK
Server: DSS/6.0.3 (Build/526.3; Platform/Linux; Release/Darwin Streaming Server; State/Development; )
Cseq: 2
OPTIONS * RTSP/1.0
CSeq: 3
User-Agent: C.U.
Authorization: Digest username="gidon", realm="Streaming Server", nonce="e5c0b7aff71820962027d73f55fe48c8", uri="/bstream.sdp", response="0042e3981657cc43737f3076b241f422"
RTSP/1.0 200 OK
Server: DSS/6.0.3 (Build/526.3; Platform/Linux; Release/Darwin Streaming Server; State/Development; )
Cseq: 3
Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, OPTIONS, ANNOUNCE, RECORD
SETUP rtsp://216.224.181.197/bstream.sdp/trackID=0 RTSP/1.0
CSeq: 4
Transport: RTP/AVP;unicast;client_port=6970-6971;mode=record
User-Agent: C.U.
Accept-Language: en-US
Authorization: Digest username="gidon", realm="Streaming Server", nonce="e5c0b7aff71820962027d73f55fe48c8", uri="/bstream.sdp", response="a9c762c9c456f85d3b913f5b6365e44d"
RTSP/1.0 404 Not Found
Server: DSS/6.0.3 (Build/526.3; Platform/Linux; Release/Darwin Streaming Server; State/Development; )
Cseq: 4
Connection: Close
It is not a server error, I got it to work before with a different client.
Not i am implementing my own client...
When i call ANNOUNCE i get back OK (200)
But when i try to call SETUP i get doesn't exist(404)
why am i getting 404?
DSS config:
<?xml version ="1.0"?>
<!-- The Document Type Definition (DTD) for the file -->
<!DOCTYPE CONFIGURATION [
<!ELEMENT CONFIGURATION (SERVER, MODULE*)>
<!ELEMENT SERVER (PREF|LIST-PREF|OBJECT|LIST-OBJECT)*>
<!ELEMENT MODULE (PREF|LIST-PREF|OBJECT|LIST-OBJECT)*>
<!ATTLIST MODULE
NAME CDATA #REQUIRED>
<!ELEMENT PREF (#PCDATA)>
<!ATTLIST PREF
NAME CDATA #REQUIRED
TYPE (UInt8|SInt8|UInt16|SInt16|UInt32|SInt32|UInt64|SInt64|Float32|Float64|Bool16|Bool8|char) "char">
<!ELEMENT LIST-PREF (VALUE*)>
<!ELEMENT VALUE (#PCDATA)>
<!ATTLIST LIST-PREF
NAME CDATA #REQUIRED
TYPE (UInt8|SInt8|UInt16|SInt16|UInt32|SInt32|UInt64|SInt64|Float32|Float64|Bool16|Bool8|char) "char">
<!ELEMENT OBJECT (PREF|LIST-PREF|OBJECT|LIST-OBJECT)*>
<!ATTLIST OBJECT
NAME CDATA #REQUIRED>
<!ELEMENT LIST-OBJECT (OBJECT-VALUE*)>
<!ELEMENT OBJECT-VALUE (PREF|LIST-PREF|OBJECT|LIST-OBJECT)*>
<!ATTLIST LIST-OBJECT
NAME CDATA #REQUIRED>
]>
<CONFIGURATION>
<SERVER>
<PREF NAME="rtsp_timeout" TYPE="UInt32" >0</PREF>
<PREF NAME="real_rtsp_timeout" TYPE="UInt32" >180</PREF>
<PREF NAME="rtp_timeout" TYPE="UInt32" >120</PREF>
<PREF NAME="maximum_connections" TYPE="SInt32" >1000</PREF>
<PREF NAME="maximum_bandwidth" TYPE="SInt32" >102400</PREF>
<PREF NAME="movie_folder" >/usr/local/movies/</PREF>
<PREF NAME="bind_ip_addr" >0</PREF>
<PREF NAME="break_on_assert" TYPE="Bool16" >false</PREF>
<PREF NAME="auto_restart" TYPE="Bool16" >true</PREF>
<PREF NAME="total_bytes_update" TYPE="UInt32" >1</PREF>
<PREF NAME="average_bandwidth_update" TYPE="UInt32" >60</PREF>
<PREF NAME="safe_play_duration" TYPE="UInt32" >600</PREF>
<PREF NAME="module_folder" >/usr/local/sbin/StreamingServerModules/</PREF>
<PREF NAME="error_logfile_name" >Error</PREF>
<PREF NAME="error_logfile_dir" >/var/streaming/logs/</PREF>
<PREF NAME="error_logfile_interval" TYPE="UInt32" >7</PREF>
<PREF NAME="error_logfile_size" TYPE="UInt32" >256000</PREF>
<PREF NAME="error_logfile_verbosity" TYPE="UInt32" >2</PREF>
<PREF NAME="screen_logging" TYPE="Bool16" >true</PREF>
<PREF NAME="error_logging" TYPE="Bool16" >true</PREF>
<PREF NAME="drop_all_video_delay" TYPE="SInt32" >1750</PREF>
<PREF NAME="start_thinning_delay" TYPE="SInt32" >0</PREF>
<PREF NAME="large_window_size" TYPE="UInt32" >64</PREF>
<PREF NAME="window_size_threshold" TYPE="UInt32" >200</PREF>
<PREF NAME="min_tcp_buffer_size" TYPE="UInt32" >8192</PREF>
<PREF NAME="max_tcp_buffer_size" TYPE="UInt32" >200000</PREF>
<PREF NAME="tcp_seconds_to_buffer" TYPE="Float32" >.5</PREF>
<PREF NAME="do_report_http_connection_ip_address" TYPE="Bool16" >false</PREF>
<PREF NAME="default_authorization_realm" >Streaming Server</PREF>
<PREF NAME="run_user_name" >qtss</PREF>
<PREF NAME="run_group_name" >qtss</PREF>
<PREF NAME="append_source_addr_in_transport" TYPE="Bool16" >false</PREF>
<LIST-PREF NAME="rtsp_port" TYPE="UInt16" >
<VALUE>554</VALUE>
<VALUE>7070</VALUE>
<VALUE>8000</VALUE>
<VALUE>8001</VALUE>
</LIST-PREF>
<PREF NAME="max_retransmit_delay" TYPE="UInt32" >500</PREF>
<PREF NAME="small_window_size" TYPE="UInt32" >24</PREF>
<PREF NAME="ack_logging_enabled" TYPE="Bool16" >false</PREF>
<PREF NAME="rtcp_poll_interval" TYPE="UInt32" >100</PREF>
<PREF NAME="rtcp_rcv_buf_size" TYPE="UInt32" >768</PREF>
<PREF NAME="send_interval" TYPE="UInt32" >50</PREF>
<PREF NAME="thick_all_the_way_delay" TYPE="SInt32" >-2000</PREF>
<PREF NAME="alt_transport_src_ipaddr" ></PREF>
<PREF NAME="max_send_ahead_time" TYPE="UInt32" >25</PREF>
<PREF NAME="reliable_udp_slow_start" TYPE="Bool16" >true</PREF>
<PREF NAME="auto_delete_sdp_files" TYPE="Bool16" >false</PREF>
<PREF NAME="authentication_scheme" >digest</PREF>
<PREF NAME="sdp_file_delete_interval_seconds" TYPE="UInt32" >10</PREF>
<PREF NAME="auto_start" TYPE="Bool16" >false</PREF>
<PREF NAME="reliable_udp" TYPE="Bool16" >true</PREF>
<PREF NAME="reliable_udp_dirs" >/</PREF>
<PREF NAME="reliable_udp_printfs" TYPE="Bool16" >false</PREF>
<PREF NAME="drop_all_packets_delay" TYPE="SInt32" >2500</PREF>
<PREF NAME="thin_all_the_way_delay" TYPE="SInt32" >1500</PREF>
<PREF NAME="always_thin_delay" TYPE="SInt32" >750</PREF>
<PREF NAME="start_thicking_delay" TYPE="SInt32" >250</PREF>
<PREF NAME="quality_check_interval" TYPE="UInt32" >1000</PREF>
<PREF NAME="RTSP_error_message" TYPE="Bool16" >false</PREF>
<PREF NAME="RTSP_debug_printfs" TYPE="Bool16" >false</PREF>
<PREF NAME="enable_monitor_stats_file" TYPE="Bool16" >false</PREF>
<PREF NAME="monitor_stats_file_interval_seconds" TYPE="UInt32" >10</PREF>
<PREF NAME="monitor_stats_file_name" >server_status</PREF>
<PREF NAME="enable_packet_header_printfs" TYPE="Bool16" >false</PREF>
<PREF NAME="packet_header_printf_options" >rtp;rr;sr;app;ack;</PREF>
<PREF NAME="overbuffer_rate" TYPE="Float32" >2.0</PREF>
<PREF NAME="medium_window_size" TYPE="UInt32" >48</PREF>
<PREF NAME="window_size_max_threshold" TYPE="UInt32" >1000</PREF>
<PREF NAME="RTSP_server_info" TYPE="Bool16" >true</PREF>
<PREF NAME="run_num_threads" TYPE="UInt32" >0</PREF>
<PREF NAME="pid_file" >/var/run/DarwinStreamingServer.pid</PREF>
<PREF NAME="force_logs_close_on_write" TYPE="Bool16" >false</PREF>
<PREF NAME="disable_thinning" TYPE="Bool16" >false</PREF>
<LIST-PREF NAME="player_requires_rtp_header_info" >
<VALUE>Nokia</VALUE>
<VALUE>Real</VALUE>
</LIST-PREF>
<LIST-PREF NAME="player_requires_bandwidth_adjustment" >
<VALUE>Nokia</VALUE>
<VALUE>Real</VALUE>
</LIST-PREF>
<LIST-PREF NAME="player_requires_no_pause_time_adjustment" >
<VALUE>Nokia</VALUE>
<VALUE>Real</VALUE>
<VALUE>PVPlayer</VALUE>
</LIST-PREF>
<PREF NAME="enable_3gpp_protocol" TYPE="Bool16" >true</PREF>
<PREF NAME="enable_3gpp_protocol_rate_adaptation" TYPE="Bool16" >true</PREF>
<PREF NAME="3gpp_protocol_rate_adaptation_report_frequency" TYPE="UInt16" >1</PREF>
<PREF NAME="default_stream_quality" TYPE="UInt16" >0</PREF>
<PREF NAME="player_requires_rtp_start_time_adjust" >Real</PREF>
<PREF NAME="enable_3gpp_debug_printfs" TYPE="Bool16" >false</PREF>
<PREF NAME="enable_udp_monitor_stream" TYPE="Bool16" >false</PREF>
<PREF NAME="udp_monitor_video_port" TYPE="UInt16" >5002</PREF>
<PREF NAME="udp_monitor_audio_port" TYPE="UInt16" >5004</PREF>
<PREF NAME="udp_monitor_dest_ip" >127.0.0.1</PREF>
<PREF NAME="udp_monitor_src_ip" >0.0.0.0</PREF>
<PREF NAME="enable_allow_guest_default" TYPE="Bool16" >true</PREF>
<PREF NAME="run_num_rtsp_threads" TYPE="UInt32" >1</PREF>
<PREF NAME="player_requires_disable_3gpp_rate_adapt" ></PREF>
<PREF NAME="player_requires_3gpp_target_time" ></PREF>
<PREF NAME="3gpp_target_time_milliseconds" TYPE="UInt32" >3000</PREF>
<PREF NAME="player_requires_disable_thinning" ></PREF>
</SERVER>
<MODULE NAME="QTSSErrorLogModule" ></MODULE>
<MODULE NAME="QTSSFileModule" >
<PREF NAME="flow_control_probe_interval" TYPE="UInt32" >10</PREF>
<PREF NAME="max_allowed_speed" TYPE="Float32" >4.000000</PREF>
<PREF NAME="enable_shared_file_buffers" TYPE="Bool16" >true</PREF>
<PREF NAME="enable_private_file_buffers" TYPE="Bool16" >false</PREF>
<PREF NAME="num_shared_buffer_increase_per_session" TYPE="UInt32" >8</PREF>
<PREF NAME="shared_buffer_unit_k_size" TYPE="UInt32" >256</PREF>
<PREF NAME="private_buffer_unit_k_size" TYPE="UInt32" >256</PREF>
<PREF NAME="num_shared_buffer_units_per_buffer" TYPE="UInt32" >1</PREF>
<PREF NAME="num_private_buffer_units_per_buffer" TYPE="UInt32" >1</PREF>
<PREF NAME="max_shared_buffer_units_per_buffer" TYPE="UInt32" >8</PREF>
<PREF NAME="max_private_buffer_units_per_buffer" TYPE="UInt32" >8</PREF>
<PREF NAME="add_seconds_to_client_buffer_delay" TYPE="Float32" >0.000000</PREF>
<PREF NAME="record_movie_file_sdp" TYPE="Bool16" >false</PREF>
<PREF NAME="enable_movie_file_sdp" TYPE="Bool16" >false</PREF>
<PREF NAME="enable_player_compatibility" TYPE="Bool16" >true</PREF>
<PREF NAME="compatibility_adjust_sdp_media_bandwidth_percent" TYPE="UInt32" >50</PREF>
<PREF NAME="compatibility_adjust_rtp_start_time_milli" TYPE="SInt64" >500</PREF>
<PREF NAME="allow_invalid_hint_track_refs" TYPE="Bool16" >false</PREF>
<PREF NAME="sdp_url" ></PREF>
<PREF NAME="admin_email" ></PREF>
</MODULE>
<MODULE NAME="QTSSReflectorModule" >
<PREF NAME="reflector_bucket_offset_delay_msec" TYPE="UInt32" >73</PREF>
<PREF NAME="reflector_buffer_size_sec" TYPE="UInt32" >10</PREF>
<PREF NAME="reflector_use_in_packet_receive_time" TYPE="Bool16" >false</PREF>
<PREF NAME="reflector_in_packet_max_receive_sec" TYPE="UInt32" >60</PREF>
<PREF NAME="reflector_rtp_info_offset_msec" TYPE="UInt32" >500</PREF>
<PREF NAME="disable_rtp_play_info" TYPE="Bool16" >false</PREF>
<PREF NAME="allow_non_sdp_urls" TYPE="Bool16" >true</PREF>
<PREF NAME="enable_broadcast_announce" TYPE="Bool16" >true</PREF>
<PREF NAME="enable_broadcast_push" TYPE="Bool16" >true</PREF>
<PREF NAME="max_broadcast_announce_duration_secs" TYPE="UInt32" >0</PREF>
<PREF NAME="allow_duplicate_broadcasts" TYPE="Bool16" >false</PREF>
<PREF NAME="enforce_static_sdp_port_range" TYPE="Bool16" >false</PREF>
<PREF NAME="minimum_static_sdp_port" TYPE="UInt16" >20000</PREF>
<PREF NAME="maximum_static_sdp_port" TYPE="UInt16" >65535</PREF>
<PREF NAME="kill_clients_when_broadcast_stops" TYPE="Bool16" >false</PREF>
<PREF NAME="use_one_SSRC_per_stream" TYPE="Bool16" >true</PREF>
<PREF NAME="timeout_stream_SSRC_secs" TYPE="UInt32" >30</PREF>
<PREF NAME="timeout_broadcaster_session_secs" TYPE="UInt32" >20</PREF>
<PREF NAME="authenticate_local_broadcast" TYPE="Bool16" >false</PREF>
<PREF NAME="disable_overbuffering" TYPE="Bool16" >false</PREF>
<PREF NAME="allow_broadcasts" TYPE="Bool16" >true</PREF>
<PREF NAME="allow_announced_kill" TYPE="Bool16" >true</PREF>
<PREF NAME="enable_play_response_range_header" TYPE="Bool16" >true</PREF>
<PREF NAME="enable_player_compatibility" TYPE="Bool16" >true</PREF>
<PREF NAME="compatibility_adjust_sdp_media_bandwidth_percent" TYPE="UInt32" >100</PREF>
<PREF NAME="force_rtp_info_sequence_and_time" TYPE="Bool16" >false</PREF>
<PREF NAME="BroadcasterGroup" >broadcaster</PREF>
<PREF NAME="redirect_broadcast_keyword" ></PREF>
<PREF NAME="redirect_broadcasts_dir" ></PREF>
<PREF NAME="broadcast_dir_list" ></PREF>
<PREF NAME="ip_allow_list" >127.0.0.*</PREF>
</MODULE>
<MODULE NAME="QTSSRelayModule" >
<PREF NAME="relay_prefs_file" >/etc/streaming/relayconfig.xml</PREF>
<PREF NAME="relay_stats_url" ></PREF>
</MODULE>
<MODULE NAME="QTSSAccessLogModule" >
<PREF NAME="request_logging" TYPE="Bool16" >true</PREF>
<PREF NAME="request_logfile_size" TYPE="UInt32" >10240000</PREF>
<PREF NAME="request_logfile_interval" TYPE="UInt32" >7</PREF>
<PREF NAME="request_logtime_in_gmt" TYPE="Bool16" >true</PREF>
<PREF NAME="request_logfile_dir" >/var/streaming/logs/</PREF>
<PREF NAME="request_logfile_name" >StreamingServer</PREF>
</MODULE>
<MODULE NAME="QTSSFlowControlModule" >
<PREF NAME="loss_thin_tolerance" TYPE="UInt32" >30</PREF>
<PREF NAME="num_losses_to_thin" TYPE="UInt32" >3</PREF>
<PREF NAME="loss_thick_tolerance" TYPE="UInt32" >5</PREF>
<PREF NAME="num_losses_to_thick" TYPE="UInt32" >6</PREF>
<PREF NAME="num_worses_to_thin" TYPE="UInt32" >2</PREF>
<PREF NAME="flow_control_udp_thinning_module_enabled" TYPE="Bool16" >true</PREF>
</MODULE>
<MODULE NAME="QTSSPosixFileSysModule" ></MODULE>
<MODULE NAME="QTSSAdminModule" >
<PREF NAME="IPAccessList" >127.0.0.*</PREF>
<PREF NAME="Authenticate" TYPE="Bool16" >true</PREF>
<PREF NAME="LocalAccessOnly" TYPE="Bool16" >true</PREF>
<PREF NAME="RequestTimeIntervalMilli" TYPE="UInt32" >50</PREF>
<PREF NAME="enable_remote_admin" TYPE="Bool16" >true</PREF>
<PREF NAME="AdministratorGroup" >admin</PREF>
</MODULE>
<MODULE NAME="QTSSMP3StreamingModule" >
<PREF NAME="mp3_request_logfile_name" >mp3_access</PREF>
<PREF NAME="mp3_request_logfile_dir" >/var/streaming/logs/</PREF>
<PREF NAME="mp3_streaming_enabled" TYPE="Bool16" >true</PREF>
<PREF NAME="mp3_broadcast_password" >*****</PREF>
<PREF NAME="mp3_broadcast_buffer_size" TYPE="UInt32" >8192</PREF>
<PREF NAME="mp3_max_flow_control_time" TYPE="SInt32" >10000</PREF>
<PREF NAME="mp3_request_logging" TYPE="Bool16" >true</PREF>
<PREF NAME="mp3_request_logfile_size" TYPE="UInt32" >10240000</PREF>
<PREF NAME="mp3_request_logfile_interval" TYPE="UInt32" >7</PREF>
<PREF NAME="mp3_request_logtime_in_gmt" TYPE="Bool16" >true</PREF>
</MODULE>
<MODULE NAME="QTSSAccessModule" >
<PREF NAME="modAccess_enabled" TYPE="Bool16" >true</PREF>
<PREF NAME="modAccess_usersfilepath" >/etc/streaming/qtusers</PREF>
<PREF NAME="modAccess_groupsfilepath" >/etc/streaming/qtgroups</PREF>
<PREF NAME="modAccess_qtaccessfilename" >qtaccess</PREF>
</MODULE>
</CONFIGURATION>
Adding
c=IN IP4 216.224.181.197
Fixed the problem.
maybe is for
, uri="/bstream.sdp",
the /bstream.sdp file exists?
have you try with avi, wmv , rmvb or mp4 file?
Related
fstream cannot open file installed by Wix toolset 3
Recently I have created an installer using Wix Toolset 3. What it does is it installs png and json files onto the user's PC, as well as an exe file for a game I've been working on that requires all of the pngs and the json file to work properly. The program uses fstream to read the json file and convert the numbers inside of it to tiles for the map system. However, when the user installs my program using the installer, my program is unable to read the file. I have verified it using an if statement to test if the file can be opened, and if it can't, to not even attempt to generate a map. Also, if the user copies the json file they get, pastes it somewhere else, remove the original one that the installer put on their PC, and replaces it with the one the copied, the program is able to open the file. Here is the code from the map reading class (Map.cpp and Map.h) and the code for the installer (Product.wxs): (In Map.h): #pragma once #include <string> class Map { public: Map(); ~Map(); static void LoadMap(std::string path, int sizeX, int sizeY, int layers); }; (In Map.cpp): #include "Map.h" #include "Game.h" #include <fstream> Map::Map() { } Map::~Map() { } void Map::LoadMap(std::string path, int sizeX, int sizeY, int layers) { char tile; std::fstream mapFile; mapFile.open(path); if (mapFile.is_open()) { for (int l = 0; l < layers; l++) { for (int y = 0; y < sizeY; y++) { for (int x = 0; x < sizeX; x++) { mapFile.get(tile); Game::AddTile(atoi(&tile), x * 64, y * 64); mapFile.ignore(); } } } } mapFile.close(); } (In Product.wxs): <?xm version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> <Product Id="fb88098c-8720-4f04-bb0d-38432fb62c1b" Name="Ophicyte" Language="1033" Version="0.0.0.1" Manufacturer="U-Bit Company" UpgradeCode="49eaae97-93b9-4e34-ab73-d21c5e3b74d1"> <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> <MajorUpgrade DowngradeErrorMessage="A newer version of Ophicyte is already installed." /> <MediaTemplate /> <Feature Id="ProductFeature" Title="Ophicyte" Level="1"> <ComponentGroupRef Id="ProductComponents" /> </Feature> <Icon Id="mainicon.ico" SourceFile="..\UBitEngine\assets\mainicon.ico"/> <Feature Id="Uninstall"> <ComponentRef Id="UninstallFolder" Primary="yes"/> </Feature> </Product> <Fragment> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="DesktopFolder" Name="Desktop" > <Component Id="OphicyteDesktopShortcut" Guid="95ba12b1-e9d7-467e-9008-e46630122a1a"> <Shortcut Id="OphicyteShortcutDesktop" Name="Ophicyte" Target="$(var.UBitEngine.TargetFileName)" WorkingDirectory="TARGETDIR" Icon="mainicon.ico" IconIndex="0" Advertise="no"/> <RemoveFolder Id="DesktopFolder" On="uninstall"/> <RegistryValue Root="HKCU" Key="Software/Ophicyte" Name="installed" Type="integer" Value="1" KeyPath="yes"/> </Component> </Directory> <Directory Id="ProgramFilesFolder"> <Directory Id="INSTALLFOLDER" Name="Ophicyte" > <Directory Id="ASSETSDIR" Name="assets"> <Component Id="ASSETSFOLDER" Guid="c18af068-440c-4faf-8fb0-22da79ddfa53" SharedDllRefCount="no" KeyPath="no" NeverOverwrite="no" Permanent="no" Transitive="no" Win64="no" Location="either"> <RemoveFolder Id="ASSETSFOLDER" Directory="ASSETSDIR" On="uninstall"/> <CreateFolder/> </Component> <!--Icons:--> <Component Id='mainicon' Guid='a4788915-ff9a-4244-a330-d4084fa3aa59'> <File Id='mainicon' Name='mainicon.ico' Source='..\UBitEngine\assets\mainicon.ico' KeyPath='yes'/> <!--Sprites:--> </Component> <Component Id="CharacterFemale" Guid="f9e432c2-f74f-49ae-bb0c-e27d7184f578"> <File Id='CharacterFemale' Name='Character(female).png' Source="..\UBitEngine\assets\Character(female).png" KeyPath='yes' /> </Component> <Component Id='Character' Guid='52a62880-5e56-4128-94e9-38fd9b7908c9'> <File Id='Character' Name='Character.png' Source='..\UBitEngine\assets\Character.png' KeyPath='yes'/> </Component> <Component Id='GrassTufts1' Guid='24241c90-0af1-417c-984a-9e6d18d22315'> <File Id='GrassTufts1' Name='Grass Tufts1.png' Source='..\UBitEngine\assets\Grass Tufts1.png' KeyPath='yes'/> </Component> <Component Id='Grass1' Guid='aab9b2fa-4583-4d11-b355-09e09cd20f63'> <File Id='Grass1' Name='Grass1.png' Source='..\UBitEngine\assets\Grass1.png' KeyPath='yes'/> </Component> <Component Id='Ocean1' Guid='aae24e29-3eba-4880-9242-8d29fc2559e9'> <File Id='Ocean1' Name='Ocean1.png' Source='..\UBitEngine\assets\Ocean1.png' KeyPath='yes'/> </Component> <Component Id='Tree2night' Guid='c9493e18-2814-408d-b750-15127b218d44'> <File Id='Tree2night' Name='Tree2(night).png' Source='..\UBitEngine\assets\Tree2(night).png' KeyPath='yes'/> </Component> <Component Id='Tree2' Guid='75e4804c-d96f-4190-a411-06affe9e9ad9'> <File Id='Tree2' Name='Tree2.png' Source='..\UBitEngine\assets\Tree2.png' KeyPath='yes'/> </Component> <!--Sound effects:--> <Component Id='Slash3' Guid='03a64a3b-6234-4db8-b4e7-970a1d557979'> <File Id='Slash3' Name='Slash3.wav' Source='..\UBitEngine\assets\Slash3.wav' KeyPath='yes'/> </Component> <!--Maps:--> <Component Id='Overworld' Guid='cc8bb3a0-b0a3-48f2-8df6-2b7c5d96aa2d'> <File Id='Overworld' Name='Overworld.json' Source='..\UBitEngine\assets\Overworld.json' KeyPath='yes'/> </Component> </Directory> </Directory> </Directory> </Directory> <!--Features for icons:--> <Feature Id="CREATEMAINICON" Title="mainicon.ico" Level="1"> <ComponentRef Id="mainicon"/> </Feature> <!--Features for shortcuts:--> <Feature Id='SHORTCUT' Title='Ophicyte' Level='1'> <ComponentRef Id='OphicyteDesktopShortcut'/> </Feature> <!--Features for folders:--> <Feature Id="CREATEASSETSFOLDER" Title="assets" Level="1"> <ComponentRef Id="ASSETSFOLDER"/> </Feature> <!--Features for sprites:--> <Feature Id="CREATECHARACTERFEMALE" Title="Character(female).png" Level="1"> <ComponentRef Id="CharacterFemale"/> </Feature> <Feature Id="CREATECHARACTER" Title="Character.png" Level="1"> <ComponentRef Id="Character"/> </Feature> <Feature Id="CREATEGRASSTUFTS1" Title="Grass Tufts1.png" Level="1"> <ComponentRef Id="GrassTufts1"/> </Feature> <Feature Id="CREATEGRASS1" Title="Grass1.png" Level="1"> <ComponentRef Id="Grass1"/> </Feature> <Feature Id="CREATEOCEAN1" Title="Ocean1.png" Level="1"> <ComponentRef Id="Ocean1"/> </Feature> <Feature Id="CREATETREE2NIGHT" Title="Tree2(night).png" Level="1"> <ComponentRef Id="Tree2night"/> </Feature> <Feature Id="CREATETREE2" Title="Tree2.png" Level="1"> <ComponentRef Id="Tree2"/> </Feature> <!--Features for sound effects:--> <Feature Id="CREATESLASH3" Title="Slash3.wav" Level="1"> <ComponentRef Id="Slash3"/> </Feature> <!--Features for maps:--> <Feature Id="CREATEOVERWORLD" Title="Overworld.json" Level="1"> <ComponentRef Id="Overworld"/> </Feature> </Fragment> <Fragment> <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> <Component Id="ProductComponent"> <File Source="$(var.UBitEngine.TargetPath)" /> </Component> <Component Id="libpng" Guid="60fb99cf-5a5f-4dc2-8928-9c0b5232d046"> <File Id='libpng' Name='libpng16-16.dll' Source="..\UBitEngine\libpng16-16.dll" KeyPath='yes' /> </Component> <Component Id="SDL2" Guid="9ee9481a-d57d-499d-8732-574ac6338980"> <File Id='SDL2' Name='SDL2.dll' Source="..\UBitEngine\SDL2.dll" KeyPath='yes' /> </Component> <Component Id="SDL2image" Guid="bc104401-71d7-4bbd-a2fc-00f7b31045c9"> <File Id='SDL2image' Name='SDL2_image.dll' Source="..\UBitEngine\SDL2_image.dll" KeyPath='yes' /> </Component> <Component Id='zlib' Guid='a9732a61-c65f-4cfc-ac82-48da7d2f9808'> <File Id='zlib' Name='zlib1.dll' Source='..\UBitEngine\zlib1.dll' KeyPath='yes'/> </Component> </ComponentGroup> </Fragment> <Fragment> <ComponentGroup Id="Assets" Directory="ASSETSFOLDER"/> </Fragment> <Fragment> <Component Id="NEWCOMP" Guid="6b94d818-8cbc-45c7-8ded-37fc8048cc71" Directory="INSTALLFOLDER"> <RemoveFile Id="RemoveInstallFolder2" Name="Ophicyte" On="uninstall" /> </Component> </Fragment> <Fragment Id="FolderUninstall"> <?define RegDir="SYSTEM\ControlSet001\services\[UBitEngine]:[Ophicyte]"?> <?define RegValueName=InstallDir?> <Property Id="INSTALLFOLDER"> <RegistrySearch Root="HKLM" Key="$(var.RegDir)" Type="raw" Id="APPLICATIONFOLDER_REGSEARCH" Name="$(var.RegValueName)" /> </Property> <DirectoryRef Id="INSTALLFOLDER"> <Component Id="UninstallFolder" Guid="4e61c6b1-fe6f-4cbb-8000-b94cf5f333d8"> <CreateFolder Directory="INSTALLFOLDER"/> <util:RemoveFolderEx Property="INSTALLFOLDER" On="uninstall"/> <RemoveFolder Id="INSTALLFOLDER" On="uninstall"/> <RegistryValue Root="HKLM" Key="$(var.RegDir)" Name="$(var.RegValueName)" Type="string" Value="[INSTALLFOLDER]" KeyPath="yes"/> </Component> </DirectoryRef> </Fragment> </Wix> Also, the value passed in the LoadMap function for path is "assets/Overworld.json". I am certain that the problem is not caused by not having the correct references or not giving the user all of the necessary files. If anyone has any idea how to fix this, your help would be greatly appreciated. Also, Overworld.json looks exactly like this: 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,1,3,1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,1,3,1,3,1,3,1,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,1,3,1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,1,3,2,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,2,3,2,3,2,3,2,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,1,3,2,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
(Quote from Igor Tandetnik): "Replace fstream with ifstream. The former attempts to open the file for both reading and writing by default. But directories under C:\Program Files are non-writable by non-admins by default, for security reasons. That's why your program works when copied elsewhere."
Compare two XML files with child nodes that are not in sequence using xmlunit 2.3.0
I want to compare two XML files in SoapUI (Groovy) which are similar but the child nodes are not in sequence. I'm using XML unit v2.3.0. XML1: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/"> <env:Header xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> </env:Header> <soap:Body> <Details> <RateType RateTypeID="6"> <RateType>AAAAA</RateType> <BaseType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/> <UOM>percent</UOM> </RateType> <RateType RateTypeID="3"> <RateType>BBB</RateType> <BaseType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/> <UOM>percent</UOM> </RateType> <RateType RateTypeID="41"> <RateType>CCC</RateType> <BaseType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/> <UOM>percent</UOM> </RateType> <RateType RateTypeID="43"> <RateType>DDD</RateType> <BaseType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/> <UOM>percent</UOM> </RateType> </Details> </soap:Body> </soap:Envelope> XML2: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/"> <env:Header xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> </env:Header> <soap:Body> <Details> <RateType RateTypeID="41"> <RateType>CCC</RateType> <BaseType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/> <UOM>percent</UOM> </RateType> <RateType RateTypeID="43"> <RateType>DDD</RateType> <BaseType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/> <UOM>percent</UOM> </RateType> <RateType RateTypeID="6"> <RateType>AAAAA</RateType> <BaseType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/> <UOM>percent</UOM> </RateType> <RateType RateTypeID="3"> <RateType>BBB</RateType> <BaseType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/> <UOM>percent</UOM> </RateType> </Details> </soap:Body> </soap:Envelope> In the above example both the XML's are similar in content but only the sequence differs. I want to compare both of them to know if they are equal. When I ran the below code: Diff myDiffSimilar = DiffBuilder.compare(XML1)) .withTest(XML2) .withNodeMatcher(new DefaultNodeMatcher(ElementSelectors.conditionalBuilder().whenElementIsNamed("Rate").thenUse(ElementSelectors.selectorForElementNamed("RateValue", ElementSelectors.byNameAndAllAttributes)).build())) .withNodeMatcher(new DefaultNodeMatcher(ElementSelectors.conditionalBuilder().whenElementIsNamed("RateType").thenUse(ElementSelectors.selectorForElementNamed("RateType", ElementSelectors.byNameAndAllAttributes)).build())) .checkForSimilar().build(); log.info myDiffSimilar.getDifferences().toString(); It gives me the following output [Expected child '{http://schemas.xmlsoap.org/soap/envelope/}Envelope' but was 'null' - comparing <soap:Envelope...> at /Envelope[1] to <NULL> (DIFFERENT), Expected child 'null' but was '{http://schemas.xmlsoap.org/soap/envelope/}Envelope' - comparing <NULL> to <soap:Envelope...> at /Envelope[1] (DIFFERENT)] Can someone advice me on the element selector/conditional builder that should be used in this scenario?
Try to use this : Diff diff = DiffBuilder.compare(actual) .withTest(expected) .ignoreComments() .ignoreWhitespace() .checkForSimilar() .withNodeMatcher(new DefaultNodeMatcher(new ByNameAndTextRecSelector(), ElementSelectors.byName)) .build(); assert diff.hasDifferences()==false
how to use nodejs send soap complextype to axis wsdl server
I'm using node as client communicate with java axis wsdl service (not familiar to this). There is a node-soap module could send simple types to service. e.g: <wsdl:message name="helloArgsRequest"> <wsdl:part name="str" type="xsd:string"/> <wsdl:part name="i" type="xsd:int"/> </wsdl:message> <!-- ... --> <wsdl:operation name="helloArgs" parameterOrder="str i"> <wsdl:input message="impl:helloArgsRequest" name="helloArgsRequest"/> <wsdl:output message="impl:helloArgsResponse" name="helloArgsResponse"/> </wsdl:operation> node: soap.createClient(url, function(err, client) { client.helloArgs({ str: "haha", i: 100 }, function(err, result) { console.log(result); // OK }); }); But node-soap does not support complexType (Cannot find any example about complexType). So I capture the http request and get raw xml data post to service, as follow: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:impl="http://192.168.0.3:8080/axis/LoginService.jws" xmlns:intf="http://192.168.0.3:8080/axis/LoginService.jws" xmlns:tns1="http://DefaultNamespace"> <soap:Body> <impl:helloArgs> <str>haha</str> <code>1</code> </impl:helloArgs> </soap:Body> </soap:Envelope> I write a test method helloJSON apply an argument typeof JSONObject. Change the xml data as follow. Unlucky, it not work. <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:impl="http://192.168.0.3:8080/axis/LoginService.jws" xmlns:intf="http://192.168.0.3:8080/axis/LoginService.jws" xmlns:tns1="http://DefaultNamespace"> <soap:Body> <impl:helloJSON> <arg type="tns1:JSONResult"> <code>1</code> <data>Hello</data> <message>dhad</message> </arg> </impl:helloJSON> </soap:Body> </soap:Envelope> The service response: <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Server.userException</faultcode> <faultstring>org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.</faultstring> <detail> <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">localhost.localdomain</ns1:hostname> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> Could somebody give me some example of the raw xml send complexType data to axis service, thanks. PS: the whole wsdl service description <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://192.168.0.3:8080/axis/LoginService.jws" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://192.168.0.3:8080/axis/LoginService.jws" xmlns:intf="http://192.168.0.3:8080/axis/LoginService.jws" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="http://DefaultNamespace" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!--WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT)--> <wsdl:types> <schema targetNamespace="http://DefaultNamespace" xmlns="http://www.w3.org/2001/XMLSchema"> <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/> <complexType name="JSONResult"> <sequence> <element name="code" type="xsd:int"/> <element name="data" nillable="true" type="xsd:anyType"/> <element name="message" nillable="true" type="xsd:string"/> </sequence> </complexType> </schema> </wsdl:types> <wsdl:message name="helloJSONResponse"> <wsdl:part name="helloJSONReturn" type="xsd:string"/> </wsdl:message> <wsdl:message name="helloArgsRequest"> <wsdl:part name="str" type="xsd:string"/> <wsdl:part name="i" type="xsd:int"/> </wsdl:message> <wsdl:message name="helloArgsResponse"> <wsdl:part name="helloArgsReturn" type="xsd:string"/> </wsdl:message> <wsdl:message name="helloJSONRequest"> <wsdl:part name="arg" type="tns1:JSONResult"/> </wsdl:message> <wsdl:portType name="LoginService"> <wsdl:operation name="helloJSON" parameterOrder="arg"> <wsdl:input message="impl:helloJSONRequest" name="helloJSONRequest"/> <wsdl:output message="impl:helloJSONResponse" name="helloJSONResponse"/> </wsdl:operation> <wsdl:operation name="helloArgs" parameterOrder="str i"> <wsdl:input message="impl:helloArgsRequest" name="helloArgsRequest"/> <wsdl:output message="impl:helloArgsResponse" name="helloArgsResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="LoginServiceSoapBinding" type="impl:LoginService"> <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="helloJSON"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="helloJSONRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded"/> </wsdl:input> <wsdl:output name="helloJSONResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://192.168.0.3:8080/axis/LoginService.jws" use="encoded"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="helloArgs"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="helloArgsRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded"/> </wsdl:input> <wsdl:output name="helloArgsResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://192.168.0.3:8080/axis/LoginService.jws" use="encoded"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="LoginServiceService"> <wsdl:port binding="impl:LoginServiceSoapBinding" name="LoginService"> <wsdlsoap:address location="http://192.168.0.3:8080/axis/LoginService.jws"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
SOAPUI - missing message part with name - schema compliance error
Here is the wsdl file with the schema inline. I have the actual wsdl file being called locally aka localhost/wsdl/. <wsdl:definitions xmlns="http://soap.company.com/fetch_n_pay" xmlns:tns="http://soap.company.com/fetch_n_pay" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://soap.company.com/fetch_n_pay"> <wsdl:types> <s:schema elementFormDefault="qualified" targetNamespace="http://soap.company.com/fetch_n_pay"> <s:complexType name="fetchBookingDetailsRequType"> <s:all> <s:element name="version" type="s:string"/> <s:element name="timestamp" type="s:dateTime"/> <s:element name="siteUrl" type="s:string"/> <s:element name="confirmationCode" type="s:string"/> <s:element name="vendorCode" type="s:string"/> </s:all> </s:complexType> <s:complexType name="fetchBookingDetailsRespType"> <s:all> <s:element name="version" type="s:string"/> <s:element name="timestamp" type="s:dateTime"/> <s:element name="isSuccess" type="s:boolean"/> <s:element name="responseCode" type="s:int"/> <s:element name="errorMessage" type="s:string"/> <s:element name="sailingDate" type="s:date"/> <s:element name="sailingName" type="s:string"/> <s:element name="cruiselineName" type="s:string"/> <s:element name="cruiselineId" type="s:string"/> <s:element name="cabinNumber" type="s:string"/> <s:element name="roomType" type="s:string"/> <s:element name="shipName" type="s:string"/> <s:element name="departingFrom" type="s:string"/> <s:element name="returnDate" type="s:date"/> <s:element name="numberOfAdults" type="s:int"/> <s:element name="numberOfChildren" type="s:int"/> <s:element name="numberOfSeniors" type="s:int"/> <s:element name="numberOfInfants" type="s:int"/> <s:element name="confirmationNumber" type="s:string"/> <s:element name="balanceDueDate" type="s:dateTime"/> <s:element name="depositDueDate" type="s:dateTime"/> <s:element name="depositCollectedByCruiseline" type="s:boolean"/> <s:element name="wasBookedSuccess" type="s:boolean"/> <s:element name="shipImageUrl" type="s:string"/> <s:element name="isCancelled" type="s:boolean"/> <s:element name="insuranceAmount" type="s:double"/> <s:element name="customerTitle" type="s:string"/> <s:element name="customerFirstName" type="s:string"/> <s:element name="customerLastName" type="s:string"/> <s:element name="customerPhone" type="s:string"/> <s:element name="customerEmail" type="s:string"/> </s:all> </s:complexType> <s:element name="fetchBookingDetailsRequElement" type="tns:fetchBookingDetailsRequType" /> <s:element name="fetchBookingDetailsRespElement" type="tns:fetchBookingDetailsRespType" /> </s:schema> </wsdl:types> <wsdl:message name="fetchBookingDetailsSoapIn"> <wsdl:part name="banana1" element="tns:fetchBookingDetailsRequElement"/> </wsdl:message> <wsdl:message name="fetchBookingDetailsSoapOut"> <wsdl:part name="banana2" element="tns:fetchBookingDetailsRespElement"/> </wsdl:message> <wsdl:portType name="FetchAndPaySoap"> <wsdl:operation name="fetchBookingDetails"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> Gets Information for booking. </wsdl:documentation> <wsdl:input message="tns:fetchBookingDetailsSoapIn"/> <wsdl:output message="tns:fetchBookingDetailsSoapOut"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="FetchAndPaySoap" type="tns:FetchAndPaySoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="fetchBookingDetails"> <soap:operation soapAction="http://soap.company.com/fetchBookingDetails" style="document"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="FetchAndPay"> <wsdl:port name="FetchAndPaySoap" binding="tns:FetchAndPaySoap"> <soap:address location="localhost/wsdl/"/> </wsdl:port> </wsdl:service> </wsdl:definitions> 1) For some reason the request soap is adding in "fet:" namespace <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fet="http://soap.company.com/fetch_n_pay"> <soapenv:Header/> <soapenv:Body> <fet:fetchBookingDetailsRequElement> <!--You may enter the following 5 items in any order--> <fet:version>?</fet:version> <fet:timestamp>?</fet:timestamp> <fet:siteUrl>?</fet:siteUrl> <fet:confirmationCode>?</fet:confirmationCode> <fet:vendorCode>?</fet:vendorCode> </fet:fetchBookingDetailsRequElement> </soapenv:Body> </soapenv:Envelope> 2) The SOAP Response is valid but the schema Compliance failed. This is the error: SOAP Response - VALID Schema Compliance - FAILED -> line -1: Missing message part with name [{http://soap.company.com/fetch_n_pay}fetchBookingDetailsRespElement] Here is the response: <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <fetchBookingDetailsResponse xmlns="http://soap.company.com/fetch_n_pay"> <version>0.1.0</version> <timestamp>2015-06-18T13:37:08-04:00</timestamp> <isSuccess>false</isSuccess> <responseCode>47</responseCode> <errorMessage>No results were found.</errorMessage> </fetchBookingDetailsResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Im trying to be Schema Compliant so that this can be parsed. Anything would be greatly appreciated. Thank you!
Your validation engine already gave you the answer, it's not fetchBookingDetailsResponse, it's fetchBookingDetailsRespElement.
Jasper Reports PDF Export - Displaying SVG image from embedded URL
Here is the sample report <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="sample" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="80b32d69-a3a5-4132-afef-37bc11966113"> <parameter name="img" class="java.lang.String" isForPrompting="false"> <defaultValueExpression><![CDATA["data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMjQ0IiBoZWlnaHQ9IjgyIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNIDEgMzcgYyAwIC0wLjIxIC0wLjUyIC04LjEzIDAgLTEyIGMgMC43OSAtNS45NSAyLjMxIC0xMi42OCA0IC0xOCBjIDAuNDYgLTEuNDQgMS45IC0yLjkgMyAtNCBjIDAuOCAtMC44IDEuOTggLTEuODggMyAtMiBjIDMuOTYgLTAuNDcgOS40IC0wLjUgMTQgMCBjIDcuNjggMC44MyAxNS43NiAyLjM5IDIzIDQgYyAxLjM5IDAuMzEgMi44MyAxLjE0IDQgMiBjIDMuNzMgMi43MyA3Ljc4IDUuNzggMTEgOSBjIDEuOTUgMS45NSA0LjA2IDQuNjUgNSA3IGMgMC44OCAyLjIxIDAuMzkgNS41NiAxIDggYyAwLjM0IDEuMzUgMS44OCAyLjY3IDIgNCBjIDAuNDkgNS4zNSAxLjE5IDEyLjkgMCAxOCBjIC0wLjkyIDMuOTQgLTguNTYgMTAuMzggLTcgMTIgYyAzLjkyIDQuMDggMjEuMjUgOS43IDMyIDE0IGMgMi41NCAxLjAxIDUuMzUgMS43OCA4IDIgYyA1LjE1IDAuNDMgMTAuODQgMC43MiAxNiAwIGMgOC45MiAtMS4yNCAxOC4yIC0zLjY3IDI3IC02IGMgMi40MiAtMC42NCA0LjYxIC0yLjI1IDcgLTMgYyAyLjkgLTAuOTEgNi4yOSAtMC44MiA5IC0yIGMgNi45NyAtMy4wMiAxNC4yMSAtNy4wMiAyMSAtMTEgYyAyLjg2IC0xLjY4IDYuMDYgLTMuODYgOCAtNiBjIDEuMDUgLTEuMTUgMS44MSAtMy4zNSAyIC01IGMgMC40MyAtMy42NyAwLjc0IC04LjY3IDAgLTEyIGMgLTAuNDUgLTIgLTIuNDkgLTQuMTggLTQgLTYgYyAtMS43OCAtMi4xNCAtMy43OCAtNC42NCAtNiAtNiBjIC0zLjQgLTIuMDggLTguMDIgLTQuMTUgLTEyIC01IGMgLTQuOTEgLTEuMDUgLTEwLjkgLTAuMyAtMTYgLTEgYyAtMi4wMSAtMC4yNyAtNC4wNyAtMS45IC02IC0yIGMgLTQuMjkgLTAuMjEgLTkuMjYgMC41MyAtMTQgMSBjIC0yLjA2IDAuMjEgLTQuMTEgMC40MSAtNiAxIGMgLTMuMzUgMS4wNSAtNi41MiAyLjkyIC0xMCA0IGMgLTExLjc3IDMuNjYgLTI5LjQzIDcuMyAtMzUgMTAgYyAtMC45NyAwLjQ3IDEuMDcgNC41MiAyIDYgYyAwLjUzIDAuODQgMi4xNyAxLjE3IDMgMiBjIDYuMDEgNi4wMSAxMS41NiAxMy44MSAxOCAxOSBjIDUuMDcgNC4wOCAxMS44MiA3LjEgMTggMTAgYyA0LjQ3IDIuMDkgOS4yOSAzLjk3IDE0IDUgYyA1LjczIDEuMjUgMTEuNzQgMS4zNSAxOCAyIGMgMy44MiAwLjQgNy4yNSAwLjkyIDExIDEgYyAxMy4yNSAwLjI3IDI2LjcyIDEuMTIgMzkgMCBjIDUuMjggLTAuNDggMTAuOTMgLTMuMDcgMTYgLTUgYyAxLjc2IC0wLjY3IDMuODkgLTEuNjkgNSAtMyBjIDIuMjMgLTIuNjMgNC4zNSAtNi41NCA2IC0xMCBjIDEuNjUgLTMuNDcgMy4xMiAtNy40NyA0IC0xMSBjIDAuMzggLTEuNTEgLTAuMzQgLTMuNDUgMCAtNSBjIDAuOTMgLTQuMjEgMy4wNyAtOC43OSA0IC0xMyBsIDAgLTUiLz48L3N2Zz4="]]></defaultValueExpression> </parameter> <detail> <band height="125" splitType="Stretch"> <image hAlign="Left" isUsingCache="true"> <reportElement uuid="80c1fb9b-31c1-4755-941a-f100059e488d" x="11" y="10" width="522" height="83"/> <imageExpression><![CDATA[$P{img}]]></imageExpression> </image> </band> </detail> </jasperReport> It returns the error: Byte data not found at : data:image/svg+xml;base64, ... while rendering in PDF, though works only on HTML exports. As suggested in some posts, I tried using net.sf.jasperreports.renderers.BatikRenderer.getInstance(new java.net.URL("data:...")) but it didn't work either. Could someone suggest a method that will display the embedded image in all types of exports?
I have finally solved problem of embedding SVG in Jasper PDF report. Use raw SVG image data without data:image/svg+xml;base64. Use net.sf.jasperreports.renderers.BatikRenderer to render SVG image. Maven dependency including this class is following: <dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>batik-bridge</artifactId> <version>1.7</version> </dependency> Use fully qualified class names org.apache.commons.codec.binary.Base64 instead of Base64. Maven dependency including this class is following: <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency> Jasper jrxml shold look like this: <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="sample" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="80b32d69-a3a5-4132-afef-37bc11966113"> <parameter name="img" class="java.lang.String" isForPrompting="false"> <defaultValueExpression><![CDATA["PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMjQ0IiBoZWlnaHQ9IjgyIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNIDEgMzcgYyAwIC0wLjIxIC0wLjUyIC04LjEzIDAgLTEyIGMgMC43OSAtNS45NSAyLjMxIC0xMi42OCA0IC0xOCBjIDAuNDYgLTEuNDQgMS45IC0yLjkgMyAtNCBjIDAuOCAtMC44IDEuOTggLTEuODggMyAtMiBjIDMuOTYgLTAuNDcgOS40IC0wLjUgMTQgMCBjIDcuNjggMC44MyAxNS43NiAyLjM5IDIzIDQgYyAxLjM5IDAuMzEgMi44MyAxLjE0IDQgMiBjIDMuNzMgMi43MyA3Ljc4IDUuNzggMTEgOSBjIDEuOTUgMS45NSA0LjA2IDQuNjUgNSA3IGMgMC44OCAyLjIxIDAuMzkgNS41NiAxIDggYyAwLjM0IDEuMzUgMS44OCAyLjY3IDIgNCBjIDAuNDkgNS4zNSAxLjE5IDEyLjkgMCAxOCBjIC0wLjkyIDMuOTQgLTguNTYgMTAuMzggLTcgMTIgYyAzLjkyIDQuMDggMjEuMjUgOS43IDMyIDE0IGMgMi41NCAxLjAxIDUuMzUgMS43OCA4IDIgYyA1LjE1IDAuNDMgMTAuODQgMC43MiAxNiAwIGMgOC45MiAtMS4yNCAxOC4yIC0zLjY3IDI3IC02IGMgMi40MiAtMC42NCA0LjYxIC0yLjI1IDcgLTMgYyAyLjkgLTAuOTEgNi4yOSAtMC44MiA5IC0yIGMgNi45NyAtMy4wMiAxNC4yMSAtNy4wMiAyMSAtMTEgYyAyLjg2IC0xLjY4IDYuMDYgLTMuODYgOCAtNiBjIDEuMDUgLTEuMTUgMS44MSAtMy4zNSAyIC01IGMgMC40MyAtMy42NyAwLjc0IC04LjY3IDAgLTEyIGMgLTAuNDUgLTIgLTIuNDkgLTQuMTggLTQgLTYgYyAtMS43OCAtMi4xNCAtMy43OCAtNC42NCAtNiAtNiBjIC0zLjQgLTIuMDggLTguMDIgLTQuMTUgLTEyIC01IGMgLTQuOTEgLTEuMDUgLTEwLjkgLTAuMyAtMTYgLTEgYyAtMi4wMSAtMC4yNyAtNC4wNyAtMS45IC02IC0yIGMgLTQuMjkgLTAuMjEgLTkuMjYgMC41MyAtMTQgMSBjIC0yLjA2IDAuMjEgLTQuMTEgMC40MSAtNiAxIGMgLTMuMzUgMS4wNSAtNi41MiAyLjkyIC0xMCA0IGMgLTExLjc3IDMuNjYgLTI5LjQzIDcuMyAtMzUgMTAgYyAtMC45NyAwLjQ3IDEuMDcgNC41MiAyIDYgYyAwLjUzIDAuODQgMi4xNyAxLjE3IDMgMiBjIDYuMDEgNi4wMSAxMS41NiAxMy44MSAxOCAxOSBjIDUuMDcgNC4wOCAxMS44MiA3LjEgMTggMTAgYyA0LjQ3IDIuMDkgOS4yOSAzLjk3IDE0IDUgYyA1LjczIDEuMjUgMTEuNzQgMS4zNSAxOCAyIGMgMy44MiAwLjQgNy4yNSAwLjkyIDExIDEgYyAxMy4yNSAwLjI3IDI2LjcyIDEuMTIgMzkgMCBjIDUuMjggLTAuNDggMTAuOTMgLTMuMDcgMTYgLTUgYyAxLjc2IC0wLjY3IDMuODkgLTEuNjkgNSAtMyBjIDIuMjMgLTIuNjMgNC4zNSAtNi41NCA2IC0xMCBjIDEuNjUgLTMuNDcgMy4xMiAtNy40NyA0IC0xMSBjIDAuMzggLTEuNTEgLTAuMzQgLTMuNDUgMCAtNSBjIDAuOTMgLTQuMjEgMy4wNyAtOC43OSA0IC0xMyBsIDAgLTUiLz48L3N2Zz4="]]></defaultValueExpression> </parameter> <detail> <band height="125" splitType="Stretch"> <image hAlign="Left" isUsingCache="true"> <reportElement uuid="80c1fb9b-31c1-4755-941a-f100059e488d" x="11" y="10" width="522" height="83"/> <imageExpression><![CDATA[net.sf.jasperreports.renderers.BatikRenderer.getInstance(new org.apache.commons.codec.binary.Base64().decodeBase64($P{img}))]]></imageExpression> </image> </band> </detail> </jasperReport>
I haven't tried it with a svg but I got it working with a png image. You have to add the import org.apache.commons.codec.binary.Base64 and you should remove the Header from the base64 encoded data: data:image/svg+xml;base64, Now you can decode and pass the data with this Expression: new ByteArrayInputStream(new Base64().decodeBase64($P{logo}.getBytes("UTF-8"))). In your case it should look like this: <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="sample" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="80b32d69-a3a5-4132-afef-37bc11966113"> <import value="org.apache.commons.codec.binary.Base64"/> <parameter name="img" class="java.lang.String" isForPrompting="false"> <defaultValueExpression><![CDATA["PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMjQ0IiBoZWlnaHQ9IjgyIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNIDEgMzcgYyAwIC0wLjIxIC0wLjUyIC04LjEzIDAgLTEyIGMgMC43OSAtNS45NSAyLjMxIC0xMi42OCA0IC0xOCBjIDAuNDYgLTEuNDQgMS45IC0yLjkgMyAtNCBjIDAuOCAtMC44IDEuOTggLTEuODggMyAtMiBjIDMuOTYgLTAuNDcgOS40IC0wLjUgMTQgMCBjIDcuNjggMC44MyAxNS43NiAyLjM5IDIzIDQgYyAxLjM5IDAuMzEgMi44MyAxLjE0IDQgMiBjIDMuNzMgMi43MyA3Ljc4IDUuNzggMTEgOSBjIDEuOTUgMS45NSA0LjA2IDQuNjUgNSA3IGMgMC44OCAyLjIxIDAuMzkgNS41NiAxIDggYyAwLjM0IDEuMzUgMS44OCAyLjY3IDIgNCBjIDAuNDkgNS4zNSAxLjE5IDEyLjkgMCAxOCBjIC0wLjkyIDMuOTQgLTguNTYgMTAuMzggLTcgMTIgYyAzLjkyIDQuMDggMjEuMjUgOS43IDMyIDE0IGMgMi41NCAxLjAxIDUuMzUgMS43OCA4IDIgYyA1LjE1IDAuNDMgMTAuODQgMC43MiAxNiAwIGMgOC45MiAtMS4yNCAxOC4yIC0zLjY3IDI3IC02IGMgMi40MiAtMC42NCA0LjYxIC0yLjI1IDcgLTMgYyAyLjkgLTAuOTEgNi4yOSAtMC44MiA5IC0yIGMgNi45NyAtMy4wMiAxNC4yMSAtNy4wMiAyMSAtMTEgYyAyLjg2IC0xLjY4IDYuMDYgLTMuODYgOCAtNiBjIDEuMDUgLTEuMTUgMS44MSAtMy4zNSAyIC01IGMgMC40MyAtMy42NyAwLjc0IC04LjY3IDAgLTEyIGMgLTAuNDUgLTIgLTIuNDkgLTQuMTggLTQgLTYgYyAtMS43OCAtMi4xNCAtMy43OCAtNC42NCAtNiAtNiBjIC0zLjQgLTIuMDggLTguMDIgLTQuMTUgLTEyIC01IGMgLTQuOTEgLTEuMDUgLTEwLjkgLTAuMyAtMTYgLTEgYyAtMi4wMSAtMC4yNyAtNC4wNyAtMS45IC02IC0yIGMgLTQuMjkgLTAuMjEgLTkuMjYgMC41MyAtMTQgMSBjIC0yLjA2IDAuMjEgLTQuMTEgMC40MSAtNiAxIGMgLTMuMzUgMS4wNSAtNi41MiAyLjkyIC0xMCA0IGMgLTExLjc3IDMuNjYgLTI5LjQzIDcuMyAtMzUgMTAgYyAtMC45NyAwLjQ3IDEuMDcgNC41MiAyIDYgYyAwLjUzIDAuODQgMi4xNyAxLjE3IDMgMiBjIDYuMDEgNi4wMSAxMS41NiAxMy44MSAxOCAxOSBjIDUuMDcgNC4wOCAxMS44MiA3LjEgMTggMTAgYyA0LjQ3IDIuMDkgOS4yOSAzLjk3IDE0IDUgYyA1LjczIDEuMjUgMTEuNzQgMS4zNSAxOCAyIGMgMy44MiAwLjQgNy4yNSAwLjkyIDExIDEgYyAxMy4yNSAwLjI3IDI2LjcyIDEuMTIgMzkgMCBjIDUuMjggLTAuNDggMTAuOTMgLTMuMDcgMTYgLTUgYyAxLjc2IC0wLjY3IDMuODkgLTEuNjkgNSAtMyBjIDIuMjMgLTIuNjMgNC4zNSAtNi41NCA2IC0xMCBjIDEuNjUgLTMuNDcgMy4xMiAtNy40NyA0IC0xMSBjIDAuMzggLTEuNTEgLTAuMzQgLTMuNDUgMCAtNSBjIDAuOTMgLTQuMjEgMy4wNyAtOC43OSA0IC0xMyBsIDAgLTUiLz48L3N2Zz4="]]></defaultValueExpression> </parameter> <detail> <band height="125" splitType="Stretch"> <image hAlign="Left" isUsingCache="true"> <reportElement uuid="80c1fb9b-31c1-4755-941a-f100059e488d" x="11" y="10" width="522" height="83"/> <imageExpression><![CDATA[new ByteArrayInputStream(new Base64().decodeBase64($P{img}.getBytes("UTF-8")))]]></imageExpression> </image> </band> </detail> </jasperReport>