Hi, I attempted to send an MMS message using the Openwave API to the Nokia MMSC emulator which is packaged in the NMSS SDK 1.5. I've modified the message to be almost identical to that which is successfully sent by the Nokia API.
But with the MMS message from openwave, this error in the MMSC emulator console appears:
[28.12.2004 16:57:01]<WARNING>: Error calling service
java.lang.NullPointerException
at com.nokia.mobile.services.emulator.mms.plugin.mm7.codec.decoder.impl.
RequestDecoder.decodeServiceRequest(RequestDecoder.java:104)
at com.nokia.mobile.services.emulator.mms.plugin.mm7.codec.decoder.impl.
RequestDecoder.decode(RequestDecoder.java:73)
at com.nokia.mobile.services.emulator.mms.plugin.mm7.codec.MM7Codec.deco
de(MM7Codec.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.nokia.mobile.services.emulator.service.impl.JavaServiceCaller.cal
l(JavaServiceCaller.java:54)
at com.nokia.mobile.services.emulator.service.impl.ServiceManagerImpl.ca
llService(ServiceManagerImpl.java:124)
at com.nokia.mobile.services.emulator.protocol.local.LocalInvocationHand
ler.invokeServer(LocalInvocationHandler.java:71)
at com.nokia.mobile.services.emulator.protocol.local.LocalInvocationHand
ler.invoke(LocalInvocationHandler.java:48)
at $Proxy129.decode(Unknown Source)
at com.nokia.mobile.services.emulator.mms.server.plugin.protocolhandler.
MM7Service.service(MM7Service.java:140)
at com.nokia.mobile.services.emulator.protocol.http.server.HTTPHandler$1
.run(HTTPHandler.java:127)
at com.nokia.mobile.services.emulator.core.impl.WorkManagerImpl$WorkerTh
read.run(WorkManagerImpl.java:381)
at java.lang.Thread.run(Unknown Source)
[28.12.2004 16:57:01]<SEVERE>: Exception from protocol library. Error message: <
null>.
java.lang.reflect.UndeclaredThrowableException
at $Proxy129.decode(Unknown Source)
at com.nokia.mobile.services.emulator.mms.server.plugin.protocolhandler.
MM7Service.service(MM7Service.java:140)
at com.nokia.mobile.services.emulator.protocol.http.server.HTTPHandler$1
.run(HTTPHandler.java:127)
at com.nokia.mobile.services.emulator.core.impl.WorkManagerImpl$WorkerTh
read.run(WorkManagerImpl.java:381)
at java.lang.Thread.run(Unknown Source)
Caused by: com.nokia.mobile.services.emulator.EmulatorException: [20] Service ca
ll is not successful: <Service name=MM7Codec, version=alpha> java.lang.NullPoint
erException
at com.nokia.mobile.services.emulator.service.impl.AbstractServiceCaller
.handleThrowable(AbstractServiceCaller.java:58)
at com.nokia.mobile.services.emulator.service.impl.JavaServiceCaller.cal
l(JavaServiceCaller.java:56)
at com.nokia.mobile.services.emulator.service.impl.ServiceManagerImpl.ca
llService(ServiceManagerImpl.java:124)
at com.nokia.mobile.services.emulator.protocol.local.LocalInvocationHand
ler.invokeServer(LocalInvocationHandler.java:71)
at com.nokia.mobile.services.emulator.protocol.local.LocalInvocationHand
ler.invoke(LocalInvocationHandler.java:48)
... 5 more
[28.12.2004 16:57:01]<INFO>: Message received: <{ Fields {
To=null
Cc=null
Bcc=null
Subject=null
Received date=Tue Dec 28 16:57:01 SGT 2004
Sent date=Tue Dec 28 16:57:01 SGT 2004
Delivery date=null
Expiry date=null
DR=false
RR=false
Message type=null
Message id=8d892d5f770c19f
}
Headers {
X-HTTPHEADER-Content-Length=16067,
X-HTTPHEADER-Content-Type=multipart/related; type="text/xml"; start="<60E953
8FCCD69C656EB17ED1FB551383>"; boundary="----=_Part_0_26780757.1104224221718",
}
Multipart MIME content {
}
>
[28.12.2004 16:57:02]<INFO>: Received response {1000=Success} from <Client syste
m id = 168259830064CD6724D577B 10.0.0.46:9910, id = 2, topics = (<ServerTopic sy
stemID=12E5CE6CFC8AE78517C8A42, serverID=12E5CE6CFC8AE78517C8A42-SOCKET_SERVER_2
>) mode = AUTO> socket://10.0.0.46:9910
[28.12.2004 16:57:02]<INFO>: Got: 0() routes for MMS with criteria: (receiver, s
ender)
[28.12.2004 16:57:02]<SEVERE>: message type is not set
[28.12.2004 16:57:02]<SEVERE>: Error handling MM7 message [12] message type is n
ot set
com.nokia.mobile.services.emulator.EmulatorException: [12] message type is not s
et
at com.nokia.mobile.services.emulator.mms.server.messageutil.MessageBuil
der.buildResponse(MessageBuilder.java:58)
at com.nokia.mobile.services.emulator.mms.server.plugin.protocolhandler.
MM7ResponseProcessor.process(MM7ResponseProcessor.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.nokia.mobile.services.emulator.service.impl.JavaServiceCaller.cal
l(JavaServiceCaller.java:54)
at com.nokia.mobile.services.emulator.service.impl.ServiceManagerImpl.ca
llService(ServiceManagerImpl.java:124)
at com.nokia.mobile.services.emulator.protocol.local.LocalInvocationHand
ler.invokeServer(LocalInvocationHandler.java:71)
at com.nokia.mobile.services.emulator.protocol.local.LocalInvocationHand
ler.invoke(LocalInvocationHandler.java:48)
at $Proxy139.process(Unknown Source)
at com.nokia.mobile.services.emulator.mms.server.plugin.protocolhandler.
MM7Service.service(MM7Service.java:307)
at com.nokia.mobile.services.emulator.protocol.http.server.HTTPHandler$1
.run(HTTPHandler.java:127)
at com.nokia.mobile.services.emulator.core.impl.WorkManagerImpl$WorkerTh
read.run(WorkManagerImpl.java:381)
at java.lang.Thread.run(Unknown Source)
[28.12.2004 16:57:02]<SEVERE>: Error servicing HTTP request
com.nokia.mobile.services.emulator.EmulatorException: [15] null
at com.nokia.mobile.services.emulator.mms.server.plugin.protocolhandler.
MM7Service.service(MM7Service.java:318)
at com.nokia.mobile.services.emulator.protocol.http.server.HTTPHandler$1
.run(HTTPHandler.java:127)
at com.nokia.mobile.services.emulator.core.impl.WorkManagerImpl$WorkerTh
read.run(WorkManagerImpl.java:381)
at java.lang.Thread.run(Unknown Source)
Contained:
com.nokia.mobile.services.emulator.EmulatorException: [12] message type is not s
et
at com.nokia.mobile.services.emulator.mms.server.messageutil.MessageBuil
der.buildResponse(MessageBuilder.java:58)
at com.nokia.mobile.services.emulator.mms.server.plugin.protocolhandler.
MM7ResponseProcessor.process(MM7ResponseProcessor.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.nokia.mobile.services.emulator.service.impl.JavaServiceCaller.cal
l(JavaServiceCaller.java:54)
at com.nokia.mobile.services.emulator.service.impl.ServiceManagerImpl.ca
llService(ServiceManagerImpl.java:124)
at com.nokia.mobile.services.emulator.protocol.local.LocalInvocationHand
ler.invokeServer(LocalInvocationHandler.java:71)
at com.nokia.mobile.services.emulator.protocol.local.LocalInvocationHand
ler.invoke(LocalInvocationHandler.java:48)
at $Proxy139.process(Unknown Source)
at com.nokia.mobile.services.emulator.mms.server.plugin.protocolhandler.
MM7Service.service(MM7Service.java:307)
at com.nokia.mobile.services.emulator.protocol.http.server.HTTPHandler$1
.run(HTTPHandler.java:127)
at com.nokia.mobile.services.emulator.core.impl.WorkManagerImpl$WorkerTh
read.run(WorkManagerImpl.java:381)
at java.lang.Thread.run(Unknown Source)
[28.12.2004 16:57:04]<INFO>: Message, message id = dbc57a1c482c66f4 sent to URL http://10.0.0.46:35000
[28.12.2004 16:57:04]<INFO>: Response from sending { Fields {
To=[]
Cc=[]
Bcc=[]
Subject=null
Received date=null
Sent date=null
Delivery date=null
Expiry date=null
DR=false
RR=false
Message type=DeliverRsp
Message id=null
}
Headers {
X-MM7-ServiceCode=sample-service-code,
X-Mms-Transaction-ID=33B8425A2DEEFAD12379D223490E987D,
X-MM7-MM7Version=5.3.0,
X-MM7-StatusCode=1000,
X-Mms-Message-Type=DeliverRsp,
X-MM7-StatusText=got it!,
}
Multipart MIME content {
}
Yes, you are right. If you use the NMSS library to develop applications, you should use the MMS 6.3.0 driver when testing against the NMSS 1.5 emulator.
The emulator in its current incarnation is mainly intended to help test application level functionality. As the API is the same regardless of which MMS version is being used, it should not matter much which version is used for testing.