2009-12-01 6 views
1

Je reçois le statut 415 du client N95 pour l'envoi du serveur devinf. J'ai essayé beaucoup de choses mais pas de succès.syncml status 415 pour devinf

Voici la réponse du serveur (généré par moi, j'écris mon propre implémentation de serveur SyncML.):

<?xml version="1.0"?> 
<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD-V1_2.dtd"> 
<SyncML> 
    <SyncHdr> 
    <VerDTD>1.2</VerDTD> 
    <VerProto>SyncML/1.2</VerProto> 
    <SessionID>14</SessionID> 
    <MsgID>1</MsgID> 
    <Target> 
     <LocURI>IMEI:356406027185460</LocURI> 
    </Target> 
    <Source> 
     <LocURI>http://localhost:8880</LocURI> 
    </Source> 
    <Meta> 
     <MaxMsgSize xmlns="syncml:metinf">10000</MaxMsgSize> 
    </Meta> 
    </SyncHdr> 
    <SyncBody> 
    <Status> 
     <MsgRef>1</MsgRef> 
     <Data>200</Data> 
     <Cmd>Alert</Cmd> 
     <CmdRef>1</CmdRef> 
     <CmdID>1</CmdID> 
    </Status> 
    <Status> 
     <MsgRef>1</MsgRef> 
     <Data>200</Data> 
     <Cmd>Put</Cmd> 
     <CmdRef>2</CmdRef> 
     <CmdID>2</CmdID> 
    </Status> 
    <Status> 
     <MsgRef>1</MsgRef> 
     <Data>200</Data> 
     <Cmd>Get</Cmd> 
     <CmdRef>3</CmdRef> 
     <CmdID>3</CmdID> 
     <TargetRef>./devinf12</TargetRef> 
    </Status> 
    <Results> 
     <MsgRef>1</MsgRef> 
     <Item> 
     <Meta> 
      <Type xmlns="syncml:metinf">application/vnd.syncml-devinf+xml</Type> 
     </Meta> 
     <Source> 
      <LocURI>./devinf12</LocURI> 
     </Source> 
     <Data> 
      <DevInf xmlns="syncml:devinf"> 
      <VerDTD>1.2</VerDTD> 
      <Man>my company ltd.</Man> 
      <Mod>syncml mod</Mod> 
      <SwV>0.01</SwV> 
      <FwV>1.01</FwV> 
      <HwV>0.1a</HwV> 
      <DevID>syncmlserv</DevID> 
      <DevTyp>server</DevTyp> 
      <DataStore> 
       <SourceRef>./contacts</SourceRef> 
       <Rx-Pref> 
       <CTType>text/vcard</CTType> 
       <VerCT>3.0</VerCT> 
       </Rx-Pref> 
       <Rx> 
       <CTType>text/vcard</CTType> 
       <VerCT>2.1</VerCT> 
       </Rx> 
       <Tx-Pref> 
       <CTType>text/vcard</CTType> 
       <VerCT>3.0</VerCT> 
       </Tx-Pref> 
       <Tx> 
       <CTType>text/vcard</CTType> 
       <VerCT>2.1</VerCT> 
       </Tx> 
       <CTCap> 
       <CTType>text/x-vcard</CTType> 
       <PropName>BEGIN</PropName> 
       <ValEnum>VCARD</ValEnum> 
       <PropName>END</PropName> 
       <ValEnum>VCARD</ValEnum> 
       <PropName>VERSION</PropName> 
       <ValEnum>2.1</ValEnum> 
       <PropName>N</PropName> 
       <PropName>TEL</PropName> 
       <ParamName>VOICE</ParamName> 
       <ParamName>FAX</ParamName> 
       <ParamName>CELL</ParamName> 
       </CTCap> 
       <CTCap> 
       <CTType>text/x-vcard</CTType> 
       <PropName>BEGIN</PropName> 
       <ValEnum>VCARD</ValEnum> 
       <PropName>END</PropName> 
       <ValEnum>VCARD</ValEnum> 
       <PropName>VERSION</PropName> 
       <ValEnum>3.0</ValEnum> 
       <PropName>N</PropName> 
       <PropName>TEL</PropName> 
       <ParamName>VOICE</ParamName> 
       <ParamName>FAX</ParamName> 
       <ParamName>CELL</ParamName> 
       </CTCap> 
       <SyncCap> 
       <SyncType>1</SyncType> 
       <SyncType>2</SyncType> 
       <SyncType>3</SyncType> 
       <SyncType>4</SyncType> 
       <SyncType>5</SyncType> 
       <SyncType>6</SyncType> 
       </SyncCap> 
      </DataStore> 
      </DevInf> 
     </Data> 
     </Item> 
     <CmdRef>3</CmdRef> 
     <CmdID>4</CmdID> 
     <Meta> 
     <Type xmlns="syncml:metinf">application/vnd.syncml-devinf+xml</Type> 
     </Meta> 
     <TargetRef>./devinf12</TargetRef> 
    </Results> 
    </SyncBody> 
</SyncML> 

Et voici ce que le client envoie:

<?xml version="1.0"?> 
<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD-V1_2.dtd"> 
<SyncML xmlns="SYNCML:SYNCML1.2"> 
    <SyncHdr> 
    <VerDTD>1.2</VerDTD> 
    <VerProto>SyncML/1.2</VerProto> 
    <SessionID>14</SessionID> 
    <MsgID>2</MsgID> 
    <Target> 
     <LocURI>http://localhost:8880</LocURI> 
    </Target> 
    <Source> 
     <LocURI>IMEI:356406027185460</LocURI> 
    </Source> 
    <Meta> 
     <MaxMsgSize xmlns="syncml:metinf">10000</MaxMsgSize> 
    </Meta> 
    </SyncHdr> 
    <SyncBody> 
    <Status> 
     <CmdID>1</CmdID> 
     <MsgRef>1</MsgRef> 
     <CmdRef>0</CmdRef> 
     <Cmd>SyncHdr</Cmd> 
     <TargetRef>IMEI:356406027185460</TargetRef> 
     <SourceRef>http://localhost:8880</SourceRef> 
     <Data>200</Data> 
    </Status> 
    <Status> 
     <CmdID>2</CmdID> 
     <MsgRef>1</MsgRef> 
     <CmdRef>4</CmdRef> 
     <Cmd>Results</Cmd> 
     <Data>415</Data> 
    </Status> 
    </SyncBody> 
</SyncML> 

Juste une note mettre meta dans/hors de l'élément ne change rien. Je suis fondamentalement perdu à ce stade ..

Répondre

1

le code de réponse est une réponse SyncML .. vous avez probablement un type de support ou un format non pris en charge. Le type ou le format de contenu non pris en charge DEVRAIT également être identifié dans le type d'élément Article dans le statut.

contrôle sur cette ...

+0

Merci pour cela, mais en fait, nous sommes allés avec le serveur SyncML de synthèse et vient d'écrire plugin java qui communique avec notre système à nos conditions. Cela fonctionnait beaucoup mieux que la mise en œuvre du protocole lui-même. – Engrost