Home » Developer & Programmer » JDeveloper, Java & XML » Attachment problem (Oracle SQL Developer 3.0.04 , jdeveloper 11g R1 11.1.1.4.0, Win7, Weblogic server)
icon5.gif  Attachment problem [message #530775] Thu, 10 November 2011 06:13 Go to next message
wtfn00b
Messages: 115
Registered: October 2011
Location: Latvia
Senior Member
Good day, I have problem uploading in base64.
I read that MTOM can only be used by JAX-WS.
But I need it on JAX-RPC.
So I'm just trying to attach file with base64 method.

I tried:

Java class:

Please see the attachment.

And my packed:

Please see the attachment.

This sample is taken from google. Can please someone tell me whats wrong with it ?

I think in my XML is something wrong Sad
  • Attachment: hmm.txt
    (Size: 5.71KB, Downloaded 228 times)
Re: Attachment problem [message #530779 is a reply to message #530775] Thu, 10 November 2011 06:41 Go to previous messageGo to next message
Michel Cadot
Messages: 66037
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator
Many of us can't or don't want to download files, so post them inline in text mode and post them formatted.

For this, Please read OraFAQ Forum Guide and How to use [code] tags and make your code easier to read.
Make sure that lines of code do not exceed 80 characters when you format.
Indent the code, use code tags and align the columns in result.
Use the "Preview Message" button to verify.
Also always post your Oracle RDBMS version, with 4 decimals.

Regards
Michel
Re: Attachment problem [message #530781 is a reply to message #530779] Thu, 10 November 2011 06:57 Go to previous messageGo to next message
wtfn00b
Messages: 115
Registered: October 2011
Location: Latvia
Senior Member
Michel Cadot wrote on Thu, 10 November 2011 14:41
Many of us can't or don't want to download files, so post them inline in text mode and post them formatted.

For this, Please read url and urlHow to use [code] tags and make your code easier to readurl.
Make sure that lines of code do not exceed 80 characters when you format.
Indent the code, use code tags and align the columns in result.
Use the "Preview Message" button to verify.
Also always post your Oracle RDBMS version, with 4 decimals.

Regards
Michel


Sorry, but I'm new for this forum.
My RDBMS is 11.2.0.1
But why I didn't use code tags because I have url sites in it.
So if I don't have posted 5 times, I can't use url sites in my post/reply.

Regards,
wtfn00b.
Re: Attachment problem [message #530807 is a reply to message #530781] Thu, 10 November 2011 13:11 Go to previous messageGo to next message
Barbara Boehmer
Messages: 8904
Registered: November 2002
Location: California, USA
Senior Member
The following is the contents of the hmm.txt attachment, with code tags:

package mypacked;

import java.math.BigDecimal;
import javax.activation.DataHandler;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlMimeType;
import javax.xml.ws.BindingType;
import javax.xml.ws.soap.MTOM;
import javax.xml.ws.soap.SOAPBinding;

@WebService(targetNamespace = "http...tempuri.org", portName = "TestWSSoap12HttpPort") // NOT SURE WHAT TO DO HERE ?
@BindingType(SOAPBinding.SOAP12HTTP_BINDING) // NOT SURE IS THIS CORRECT ?
@MTOM // CAN I USE THIS IN MY VERSION AND WITH JAX-RPC ?
public class upload_file {

  @WebMethod
  public BigDecimal createJournal(@WebParam(name = "journal") String journal) {
    return null ;
  }

  @WebMethod
  public void attachFile(
    @WebParam(name = "id") BigDecimal id,
    @WebParam(name = "filename") BigDecimal filename,
    @WebParam(name = "data") @XmlMimeType("application/octet-stream") DataHandler data) {
  }
}

-------------------------------------------------------------------------------------------------

create or replace
PACKAGE BODY JANIS  AS

function upload_file(session_id in number, upload_id in number)
         return xmltype
  AS
  temp varchar2(4000);
  crlf char(2):=chr(13)||chr(10);
  BEGIN
   
    if upload_id is null then
      raise_application_error(-20032,'');
    end if;

    temp:='<definitions
            xmlns="http://schemas.xmlsoap.org/wsdl/"
            xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
            xmlns:tns="http://attachment.tip/"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
            targetNamespace="http://attachment.tip/">'||crlf;
    temp:=temp||'  <types/>'||crlf;
    temp:=temp||'  <message name="sendImage">'||crlf;
    temp:=temp||'    <part name="image" type="xsd:base64Binary"/>'||crlf;
    temp:=temp||'  </message>'||crlf;
    temp:=temp||'  <message name="sendImageResponse"/>'||crlf;
    temp:=temp||'  <message name="sendOctet">'||crlf;
    temp:=temp||'    <part name="octet" type="xsd:base64Binary"/>'||crlf;
    temp:=temp||'  </message>'||crlf;
    temp:=temp||'  <message name="sendOctetResponse"/>'||crlf;
    temp:=temp||'  <portType name="AttachmentTip">'||crlf;
    temp:=temp||'    <operation name="sendImage">'||crlf;
    temp:=temp||'      <input message="tns:sendImage"/>'||crlf;
    temp:=temp||'      <output message="tns:sendImageResponse"/>'||crlf;
    temp:=temp||'    </operation>'||crlf;
    temp:=temp||'    <operation name="sendOctet">'||crlf;
    temp:=temp||'      <input message="tns:sendOctet"/>'||crlf;
    temp:=temp||'      <output message="tns:sendOctetResponse"/>'||crlf;
    temp:=temp||'    </operation>'||crlf;
    temp:=temp||'  </portType>'||crlf;
    temp:=temp||'  <binding name="AttachmentBinding" type="tns:AttachmentTip">'||crlf;
    temp:=temp||'    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>'||crlf;
    temp:=temp||'    <operation name="sendImage">'||crlf;
    temp:=temp||'      <soap:operation soapAction=""/>'||crlf;
    temp:=temp||'      <input>'||crlf;
    temp:=temp||'        <mime:multipartRelated>'||crlf;
    temp:=temp||'          <mime:part>'||crlf;
    temp:=temp||'            <soap:body parts="" namespace="http://attachment.tip/" use="literal"/>'||crlf;
    temp:=temp||'          </mime:part>'||crlf;
    temp:=temp||'          <mime:part>'||crlf;
    temp:=temp||'            <mime:content part="image" type="image/jpeg"/>'||crlf;
    temp:=temp||'          </mime:part>'||crlf;
    temp:=temp||'        </mime:multipartRelated>'||crlf;
    temp:=temp||'      </input>'||crlf;
    temp:=temp||'      <output>'||crlf;
    temp:=temp||'        <soap:body namespace="http://attachment.tip/" use="literal"/>'||crlf;
    temp:=temp||'      </output>'||crlf;
    temp:=temp||'    </operation>'||crlf;
    temp:=temp||'    <operation name="sendOctet">'||crlf;
    temp:=temp||'      <soap:operation soapAction=""/>'||crlf;
    temp:=temp||'      <input>'||crlf;
    temp:=temp||'        <mime:multipartRelated>'||crlf;
    temp:=temp||'          <mime:part>'||crlf;
    temp:=temp||'            <soap:body parts="" namespace="http://attachment.tip/" use="literal"/>'||crlf;
    temp:=temp||'          </mime:part>'||crlf;
    temp:=temp||'          <mime:part>'||crlf;
    temp:=temp||'            <mime:content part="octet" type="application/octet-stream"/>'||crlf;
    temp:=temp||'          </mime:part>'||crlf;
    temp:=temp||'        </mime:multipartRelated>'||crlf;
    temp:=temp||'      </input>'||crlf;
    temp:=temp||'      <output>'||crlf;
    temp:=temp||'        <soap:body namespace="http://attachment.tip/" use="literal"/>'||crlf;
    temp:=temp||'      </output>'||crlf;
    temp:=temp||'    </operation>'||crlf;
    temp:=temp||'  </binding>'||crlf;
    temp:=temp||'  <service name="AttachmentService">'||crlf;
    temp:=temp||'    <port binding="tns:AttachmentBinding" name="AttachmentTip">'||crlf;
    temp:=temp||'      <soap:address location="http://localhost:9080/SwAService/services/AttachmentTip"/>'||crlf;
    temp:=temp||'    </port>'||crlf;
    temp:=temp||'  </service>'||crlf;
    temp:=temp||'  </definitions>'||crlf;
    
    return (xmltype(temp));

exception
    when others then
       if sqlcode=-20031 then
          raise_application_error(-20031,'...');
       elsif sqlcode=-20032 then
          raise_application_error(-20032,'...');
       elsif sqlcode=-20033 then
          raise_application_error(-20033,'...');
       elsif sqlcode=-20036 then
          raise_application_error(-20036,'...');
       else
          raise_application_error(-20099,'...');
       end if;

  END upload_file;

END JANIS;

Re: Attachment problem [message #530809 is a reply to message #530807] Thu, 10 November 2011 13:22 Go to previous messageGo to next message
Barbara Boehmer
Messages: 8904
Registered: November 2002
Location: California, USA
Senior Member
Assuming that you have a valid package specification for the janis package, as I have provided below, then your package body compiles without error and the function executes without error and appears to return a valid xmltype. So, if you are having a problem it must be in the java. I will move this from the SQL and PL/SQL sub-forum to the sub-forum for JAVA and XML.

SCOTT@orcl_11gR2> create or replace PACKAGE JANIS
  2  AS
  3    function upload_file(session_id in number, upload_id in number)
  4  	      return xmltype;
  5  END JANIS;
  6  /

Package created.

SCOTT@orcl_11gR2> show errors
No errors.
SCOTT@orcl_11gR2> create or replace PACKAGE BODY JANIS
  2  AS
  3    function upload_file(session_id in number, upload_id in number)
  4  	      return xmltype
  5    AS
  6    temp varchar2(4000);
  7    crlf char(2):=chr(13)||chr(10);
  8    BEGIN
  9  
 10  	 if upload_id is null then
 11  	   raise_application_error(-20032,'');
 12  	 end if;
 13  
 14  	 temp:='<definitions
 15  		 xmlns="http://schemas.xmlsoap.org/wsdl/"
 16  		 xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
 17  		 xmlns:tns="http://attachment.tip/"
 18  		 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 19  		 xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
 20  		 targetNamespace="http://attachment.tip/">'||crlf;
 21  	 temp:=temp||'	<types/>'||crlf;
 22  	 temp:=temp||'	<message name="sendImage">'||crlf;
 23  	 temp:=temp||'	  <part name="image" type="xsd:base64Binary"/>'||crlf;
 24  	 temp:=temp||'	</message>'||crlf;
 25  	 temp:=temp||'	<message name="sendImageResponse"/>'||crlf;
 26  	 temp:=temp||'	<message name="sendOctet">'||crlf;
 27  	 temp:=temp||'	  <part name="octet" type="xsd:base64Binary"/>'||crlf;
 28  	 temp:=temp||'	</message>'||crlf;
 29  	 temp:=temp||'	<message name="sendOctetResponse"/>'||crlf;
 30  	 temp:=temp||'	<portType name="AttachmentTip">'||crlf;
 31  	 temp:=temp||'	  <operation name="sendImage">'||crlf;
 32  	 temp:=temp||'	    <input message="tns:sendImage"/>'||crlf;
 33  	 temp:=temp||'	    <output message="tns:sendImageResponse"/>'||crlf;
 34  	 temp:=temp||'	  </operation>'||crlf;
 35  	 temp:=temp||'	  <operation name="sendOctet">'||crlf;
 36  	 temp:=temp||'	    <input message="tns:sendOctet"/>'||crlf;
 37  	 temp:=temp||'	    <output message="tns:sendOctetResponse"/>'||crlf;
 38  	 temp:=temp||'	  </operation>'||crlf;
 39  	 temp:=temp||'	</portType>'||crlf;
 40  	 temp:=temp||'	<binding name="AttachmentBinding" type="tns:AttachmentTip">'||crlf;
 41  	 temp:=temp||'	  <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>'||crlf;
 42  	 temp:=temp||'	  <operation name="sendImage">'||crlf;
 43  	 temp:=temp||'	    <soap:operation soapAction=""/>'||crlf;
 44  	 temp:=temp||'	    <input>'||crlf;
 45  	 temp:=temp||'	      <mime:multipartRelated>'||crlf;
 46  	 temp:=temp||'		<mime:part>'||crlf;
 47  	 temp:=temp||'		  <soap:body parts="" namespace="http://attachment.tip/" use="literal"/>'||crlf;
 48  	 temp:=temp||'		</mime:part>'||crlf;
 49  	 temp:=temp||'		<mime:part>'||crlf;
 50  	 temp:=temp||'		  <mime:content part="image" type="image/jpeg"/>'||crlf;
 51  	 temp:=temp||'		</mime:part>'||crlf;
 52  	 temp:=temp||'	      </mime:multipartRelated>'||crlf;
 53  	 temp:=temp||'	    </input>'||crlf;
 54  	 temp:=temp||'	    <output>'||crlf;
 55  	 temp:=temp||'	      <soap:body namespace="http://attachment.tip/" use="literal"/>'||crlf;
 56  	 temp:=temp||'	    </output>'||crlf;
 57  	 temp:=temp||'	  </operation>'||crlf;
 58  	 temp:=temp||'	  <operation name="sendOctet">'||crlf;
 59  	 temp:=temp||'	    <soap:operation soapAction=""/>'||crlf;
 60  	 temp:=temp||'	    <input>'||crlf;
 61  	 temp:=temp||'	      <mime:multipartRelated>'||crlf;
 62  	 temp:=temp||'		<mime:part>'||crlf;
 63  	 temp:=temp||'		  <soap:body parts="" namespace="http://attachment.tip/" use="literal"/>'||crlf;
 64  	 temp:=temp||'		</mime:part>'||crlf;
 65  	 temp:=temp||'		<mime:part>'||crlf;
 66  	 temp:=temp||'		  <mime:content part="octet" type="application/octet-stream"/>'||crlf;
 67  	 temp:=temp||'		</mime:part>'||crlf;
 68  	 temp:=temp||'	      </mime:multipartRelated>'||crlf;
 69  	 temp:=temp||'	    </input>'||crlf;
 70  	 temp:=temp||'	    <output>'||crlf;
 71  	 temp:=temp||'	      <soap:body namespace="http://attachment.tip/" use="literal"/>'||crlf;
 72  	 temp:=temp||'	    </output>'||crlf;
 73  	 temp:=temp||'	  </operation>'||crlf;
 74  	 temp:=temp||'	</binding>'||crlf;
 75  	 temp:=temp||'	<service name="AttachmentService">'||crlf;
 76  	 temp:=temp||'	  <port binding="tns:AttachmentBinding" name="AttachmentTip">'||crlf;
 77  	 temp:=temp||'	    <soap:address location="http://localhost:9080/SwAService/services/AttachmentTip"/>'||crlf;
 78  	 temp:=temp||'	  </port>'||crlf;
 79  	 temp:=temp||'	</service>'||crlf;
 80  	 temp:=temp||'	</definitions>'||crlf;
 81  
 82  	 return (xmltype(temp));
 83  
 84  exception
 85  	 when others then
 86  	    if sqlcode=-20031 then
 87  	       raise_application_error(-20031,'...');
 88  	    elsif sqlcode=-20032 then
 89  	       raise_application_error(-20032,'...');
 90  	    elsif sqlcode=-20033 then
 91  	       raise_application_error(-20033,'...');
 92  	    elsif sqlcode=-20036 then
 93  	       raise_application_error(-20036,'...');
 94  	    else
 95  	       raise_application_error(-20099,'...');
 96  	    end if;
 97  
 98    END upload_file;
 99  END JANIS;
100  /

Package body created.

SCOTT@orcl_11gR2> show errors
No errors.
SCOTT@orcl_11gR2> select janis.upload_file (1, 1)
  2  from   dual
  3  /

JANIS.UPLOAD_FILE(1,1)
--------------------------------------------------------------------------------
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas
.xmlsoap.org/wsdl/soap/" xmlns:tns="http://attachment.tip/" xmlns:xsd="http://ww
w.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targ
etNamespace="http://attachment.tip/">
  <types/>
  <message name="sendImage">
    <part name="image" type="xsd:base64Binary"/>
  </message>
  <message name="sendImageResponse"/>
  <message name="sendOctet">
    <part name="octet" type="xsd:base64Binary"/>
  </message>
  <message name="sendOctetResponse"/>
  <portType name="AttachmentTip">
    <operation name="sendImage">
      <input message="tns:sendImage"/>
      <output message="tns:sendImageResponse"/>
    </operation>
    <operation name="sendOctet">
      <input message="tns:sendOctet"/>
      <output message="tns:sendOctetResponse"/>
    </operation>
  </portType>
  <binding name="AttachmentBinding" type="tns:AttachmentTip">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

    <operation name="sendImage">
      <soap:operation soapAction=""/>
      <input>
        <mime:multipartRelated>
          <mime:part>
            <soap:body parts="" namespace="http://attachment.tip/" use="literal"
/>
          </mime:part>
          <mime:part>
            <mime:content part="image" type="image/jpeg"/>
          </mime:part>
        </mime:multipartRelated>
      </input>
      <output>
        <soap:body namespace="http://attachment.tip/" use="literal"/>
      </output>
    </operation>
    <operation name="sendOctet">
      <soap:operation soapAction=""/>
      <input>
        <mime:multipartRelated>
          <mime:part>
            <soap:body parts="" namespace="http://attachment.tip/" use="literal"
/>
          </mime:part>
          <mime:part>
            <mime:content part="octet" type="application/octet-stream"/>
          </mime:part>
        </mime:multipartRelated>
      </input>
      <output>
        <soap:body namespace="http://attachment.tip/" use="literal"/>
      </output>
    </operation>
  </binding>
  <service name="AttachmentService">
    <port binding="tns:AttachmentBinding" name="AttachmentTip">
      <soap:address location="http://localhost:9080/SwAService/services/Attachme
ntTip"/>
    </port>
  </service>
</definitions>


1 row selected.

SCOTT@orcl_11gR2>

Re: Attachment problem [message #530816 is a reply to message #530807] Thu, 10 November 2011 15:04 Go to previous messageGo to next message
Michel Cadot
Messages: 66037
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator
Quote:
exception
    when others then
       if sqlcode=-20031 then
          raise_application_error(-20031,'...');
       elsif sqlcode=-20032 then
          raise_application_error(-20032,'...');
       elsif sqlcode=-20033 then
          raise_application_error(-20033,'...');
       elsif sqlcode=-20036 then
          raise_application_error(-20036,'...');
       else
          raise_application_error(-20099,'...');
       end if;


This is very bad programming.
Read WHEN OTHERS.

Regards
Michel
Re: Attachment problem [message #531181 is a reply to message #530816] Mon, 14 November 2011 05:26 Go to previous message
wtfn00b
Messages: 115
Registered: October 2011
Location: Latvia
Senior Member
Okey, thanks. I will look in to it.
Previous Topic: XMLQuery - extract document version
Next Topic: JDeveloper10 - jradiobutton not showing dot
Goto Forum:
  


Current Time: Mon Dec 10 22:50:33 CST 2018