मैं ट्रिडियन 2011 एसपी 1 कोर सेवा से कनेक्ट करने के लिए एक एंड्रॉइड ऐप विकसित कर रहा हूं। अब तक मैंने wsclient का उपयोग कर कोर सेवा wsdl से एंड्रॉइड डब्ल्यूएस स्टब्स बनाए हैं।एक एंड्रॉइड क्लाइंट से ट्रिडियन कोर सेवा से कनेक्ट करने में असमर्थ
उन स्टब्स आयात किए गए हैं, जो सभी कोर सेवा विधियों तक पहुंच की अनुमति देते हैं।
मैं अब एंड्रॉयड आवेदन के माध्यम से Tridion को प्रमाणित कर सकते हैं लेकिन जैसे ही मैं getApiVersion()
के रूप में भी सबसे वेब सेवा कॉल के बुनियादी, इस तरह के प्रदर्शन करने के लिए प्रयास करते हैं, मैं त्रुटि मिलती है:
ReflectionHelper*java.lang.NoSuchFieldException: GetApiVersionResult.
मैं सोच रहा था क्या कोई और जावा एंड्रॉइड ऐप बनाने में कामयाब रहा है जो कोर सेवा के साथ संचार करता है?
दिलचस्प रूप से पर्याप्त है, अगर मैं जावा एप्लिकेशन के रूप में कोड चलाता हूं, तो wsimport स्टब्स का उपयोग करके सबकुछ एक इलाज करता है।
किसी भी मदद की सराहना की।
Tridion से कनेक्ट करने के लिए::
class TridionConnect extends AsyncTask<String, Integer, String> {
// Called to initiate the background activity
@Override
protected String doInBackground(String... statuses) {
try {
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username", "password".toCharArray());
}
});
url = new URL("http://tridion-server/webservices/CoreService2011.svc?wsdl");
System.out.println(String.format("Get Service"));
service = new CoreService2011();
System.out.println(String.format("Get Client"));
client = service.getBasicHttp();
return "Authenticated To Tridion";
} catch (Exception e) {
Log.e("Authentication failure", e.toString());
e.printStackTrace();
return "Failed to authenticate";
}
}
// Called when there's a status to be updated
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
// Not used in this case
}
// Called once the background activity has completed
@Override
protected void onPostExecute(String result) { //
Toast.makeText(FullscreenActivity.this, result, Toast.LENGTH_LONG).show();
area.setText("Authenticated to Tridion OK");
}
}
ApiVersion
client.getApiVersion();
UserData currentUser = client.getCurrentUser();
System.out.println(String.format("'%s' %s", currentUser.getTitle(), currentUser.getId()));
हाय एलन, सामान्य रूप से 'log.e'' पर पूरा अपवाद पारित करना और 'toString' नहीं': 'Log.e ("TridionConnect", "प्रमाणीकरण विफलता", ई); ' –
I बस देखें कि आपने पहले ही कहा है कि कोड एक नियमित कार्यक्रम में ठीक काम करता है। उस स्थिति में, यह वास्तविक जेवीएम/जेआरई और दलविक के बीच एक अंतर हो सकता है। लेकिन आपकी समस्या को पुन: उत्पन्न किए बिना, मैं निश्चित नहीं हो सकता। –
अब मैं इस निष्कर्ष पर आ रहा हूं कि ऊपर वर्णित अनुसार यह संभव नहीं है। मेरे पास एक वैकल्पिक समाधान है जिसे मैं अब जांच कर रहा हूं। –