Tridion 2011 SP1 핵심 서비스에 연결하기위한 Android 앱을 개발 중입니다. 지금까지 wsclient를 사용하여 핵심 서비스 wsdl에서 Android WS Stubs를 만들었습니다.Android 클라이언트에서 Tridion Core Service에 연결할 수 없습니다.
모든 핵심 서비스 메소드에 대한 액세스를 허용하는 스텁을 가져 왔습니다.
지금은 안드로이드 응용 프로그램을 통해 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()));
안녕하세요. Allan은 일반적으로'toString'뿐만 아니라'Log.e'에 전체 예외를 전달하는 것이 가장 좋습니다 : Log.e ("TridionConnect", "Authentication Failure", e), ' –
I 그냥 코드가 정상적인 프로그램에서 잘 작동한다고 이미 말한 것을보십시오. 이 경우 실제 JVM/JRE와 Dalvik의 차이 일 수 있습니다. 그러나 당신의 문제를 재현하지 않고, 나는 확신 할 수 없다. –
나는 이것이 위에서 설명한 것처럼 가능하지 않다는 결론에 이르고있다. 나는 현재 조사하고있는 대체 솔루션을 가지고있다. –