Open-Source-Dokumentenmanagement, Archivierung, Workflow
DMS für jeden

>> alle Informationen zum Open-Source-Dokumentenmanagementsystem agorum core <<
agorum core
Willkommen, Gast
Aw: Umlaute in WebServices, Path not found (1 Leser) (1) Gast
Zum Ende gehen Neues Thema Beliebt: 0
THEMA: Aw: Umlaute in WebServices, Path not found
#5578
hoppler (Benutzer)
Senior Boarder
Beiträge: 46
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
[SOLVED] Umlaute in WebServices, Path not found vor 3 Jahren, 1 Monat Karma: 0  
Hi,

glücklicherweise wurde mein kompletter Text gelöscht, als ich auf Vorschau gedrückt habe, also darf ich alles nochma von vorne schreiben, in Kurzfassung:


Habe folgenen Fehler festgestellt, dass "getItemsFromFolder" nicht mit Umlaute umgehen kann. Pfade die Umlaute wie Ö enthalten werden nicht gefunden obwohl sie vorhanden sind.

Wenn ich sie per XML anspreche, z.b. mit UPDATE, dann werden Sie erkannt.

Hier der Code für den "getItemsFromFolder"
Code:


GetItemsFromFolderRequestBean reqBean = new GetItemsFromFolderRequestBean();
reqBean.serviceMethod = "getItemsFromFolder";
reqBean.classNames = new string[] { "FolderObject" };

ObjectLookupBean bean = new ObjectLookupBean();
bean.fullPath = path;
reqBean.folder = bean;

reqBean.needsConnection = true;
reqBean.wsSessionId = wsSessionId;
reqBean.transactionId = transID;

reqBean.requestAttributes = new string[] { "NAME" };

NgOSItemsService.NgOSItemsService service = new NgOSItemsService.NgOSItemsService();
ItemsResponseBean respBean = service.getItemsFromFolder(reqBean);



Und hier die XML-Response:
Code:


<?xml version = "1.0" encoding = "UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:getItemsFromFolderResponse xmlns:ns1="urn:NgOSItemsService"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<return xsi:type="ns1:ItemsResponseBean">
<errorCode xsi:type="xsd:int">64</errorCode>
<errorKey xsi:type="xsd:string">agorum.roi.remote.exception.FolderNotFound</errorKey>
<items xmlns:ns2="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:Array"
ns2:arrayType="ns1:ItemBean[]"
xsi:null="true" />
<logError xsi:type="xsd:string">An NgOS error has occured: Given folder was not found: ID: 0</logError>
<logMessage xsi:type="xsd:string">agorum.roi.exception.RoiException: Given folder was not found: ID: 0
at agorum.roi.ejb.common.ExceptionUtils.handleException(ExceptionUtils.java:480)
at agorum.ngos.dynawebservices.server.services.items.ItemsService.getItemsFromFolderImpl(ItemsService.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at agorum.ngos.dynawebservices.server.common.TransactionUtil.callService(TransactionUtil.java:81)
at agorum.ngos.dynawebservices.server.common.DynaWebserviceTransactionHandler.callService(DynaWebserviceTransactionHandler.java:312)
at agorum.ngos.dynawebservices.server.common.DynaWebserviceTransactionHandler.run(DynaWebserviceTransactionHandler.java:177)
</logMessage>
<requestId xsi:type="xsd:long">0</requestId>
<resultCount xsi:type="xsd:int">0</resultCount>
<transactionId xsi:type="xsd:string"
xsi:null="true" />
<wsSessionId xsi:type="xsd:string">WSSID_1299614413214</wsSessionId>
</return>
</ns1:getItemsFromFolderResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>



Der XML Request ist wunderbar und hat auch die Umlaute richtig drinnen. Der vollständigkeitshalber aber hier nochmal der RequestXML:
Code:


<?xml version = "1.0" encoding = "UTF-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="urn:NgOSItemsService"
xmlns:types="urn:NgOSItemsService/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<tns:getItemsFromFolder>
<requestBean href="#id1" />
</tns:getItemsFromFolder>
<tns:GetItemsFromFolderRequestBean id="id1"
xsi:type="tns:GetItemsFromFolderRequestBean">
<serviceMethod xsi:type="xsd:string">getItemsFromFolder</serviceMethod>
<needsConnection xsi:type="xsd:boolean">true</needsConnection>
<transactionId xsi:type="xsd:string">WS_TSID_1130146_1299615822100</transactionId>
<wsSessionId xsi:type="xsd:string">WSSID_1299614413214</wsSessionId>
<itemsPerRequest xsi:type="xsd:int">0</itemsPerRequest>
<startItem xsi:type="xsd:int">0</startItem>
<requestId xsi:type="xsd:long">0</requestId>
<requestAttributes href="#id2" />
<folder href="#id3" />
<classNames href="#id4" />
</tns:GetItemsFromFolderRequestBean>
<soapenc:Array id="id2"
soapenc:arrayType="xsd:string[1]">
<Item>NAME</Item>
</soapenc:Array>
<tns:ObjectLookupBean id="id3"
xsi:type="tns:ObjectLookupBean">
<objectId xsi:type="xsd:long">0</objectId>
<fullPath xsi:type="xsd:string">/agorum/roi/Files/Kunden2/00139 K Ö G E L</fullPath>
<className xsi:type="xsd:string">FolderObject</className>
</tns:ObjectLookupBean>
<soapenc:Array id="id4"
soapenc:arrayType="xsd:string[1]">
<Item>FolderObject</Item>
</soapenc:Array>
</soap:Body>
</soap:Envelope>




PS: Mein Text verursacht einen Fehler wenn ich auf "Vorschau" im Forum drücke. Es erscheint nur ein weiser Hintergrund. Benutze OPERA

Vielen Dank für die Rückmeldung


Gruß
Mike
 
Moderator informieren   Gespeichert Gespeichert  
 
Letzte Änderung: 19.12.2012 16:37 von hoppler.
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#5584
frank.stettner (Moderator)
Moderator
Beiträge: 1296
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Geschlecht: männlich agorum core Ort: Stuttgart Geburtstag: 1979-09-06
Aw: Umlaute in WebServices, Path not found vor 3 Jahren, 1 Monat Karma: 18  
Hallo.

QUOTE:
glücklicherweise wurde mein kompletter Text gelöscht, als ich auf Vorschau gedrückt habe, also darf ich alles nochma von vorne schreiben, in Kurzfassung:

Hab ich grad getestet und bei mir kam auch eine leere Seite... Mit Firefox...
Hab die Vorschau noch nie eingesetzt. Ich muss mal schauen, ob es vllt eine neue Version der Forensoftware gibt.

QUOTE:
Habe folgenen Fehler festgestellt, dass "getItemsFromFolder" nicht mit Umlaute umgehen kann. Pfade die Umlaute wie Ö enthalten werden nicht gefunden obwohl sie vorhanden sind.

Welche Datenbank setzten Sie ein? Passiert das auch mit anderen Umlauten/Sonderzeichen? Gibt es einen Unterschied zw. großen und kleinen Umlauten?

Viele Grüße,
Frank Stettner
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#5586
hoppler (Benutzer)
Senior Boarder
Beiträge: 46
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Umlaute in WebServices, Path not found vor 3 Jahren, 1 Monat Karma: 0  
Hi,

wir benutzen das mitgelieferte MySQL, haben die neuste Version installiert von Agorum Core.

Also kleine Umlaute wie "ö,ä.ü" gehen über den "getItemsFromFolder" Befehl.
Wenn ich jedoch einen Ordner Testä habe und einen Ordner TestÄ anlegen will, denkt Agorum, dass der Ordner schon exiistiert.
Hier bitte beachten, dass die Ordner Erstelleung über den ParseXMLRequestBean läuft. Um Fehler zu vermeiden gebe ich immer "<NoErrorIfExist/>" mit.

Im kurzen Test gingen folgenden Zeichen nicht: & ß Ä Ö Ü

Per ParseXMLRequestBean und "<Update>" werden Sie gefunden, aber mit dem "getItemsFromFolder" Befehl nicht.

EDIT:
Test& wird auch per XML nicht gefunden, aber das liegt an XML, wenn man es mit &amp; beschreibt, geht es. Also anstatt Test& ein Test&amp;


EDIT2:

Folgendes ist mir noch aufgefallen: Im Quellcode, an der Stelle der Exception, wird der angefragte Pfad nicht zurückggegeben, obwohl der Quellcode dies vorsieht:

Und zwar requestBean.getFolder() im Methodenaufruf ExceptionUtils.handleException

Code:


package agorum.ngos.dynawebservices.server.services.items;

public ItemsResponseBean getItemsFromFolderImpl(
GetItemsFromFolderRequestBean requestBean,
WebServiceSessionBean wsSessionBean, SessionController sessionController)
throws DynaWebservicesException {

ItemsResponseBean responseBean = new ItemsResponseBean();
try {

// Perform getItems
FolderObjectClientBean folder = null;
folder =
(FolderObjectClientBean) lookupObject(sessionController, requestBean
.getFolder());

// Error handling
if (folder == null) {
// Folder was not found
ExceptionUtils.handleException("Given folder was not found: " +
requestBean.getFolder(), ExceptionUtils.FOLDERNOTFOUND,
ExceptionUtils.FOLDERNOTFOUND_CODE);
}

....



EDIT3:

Also nach reichlichem RemoteDebuggen steht fest, dass es nicht an der Implementierung von "getItemsFromFolderImpl" liegt, sondern der "Fehler" passiert schon viel früher. Selbst in den Paketen die SOAP verarbeitet, ist es schon falsch. Anstatt ein "Ö" krieg ich ein Schwarz4es Raute mir Fragezeichen drinne. Habe keine möglichkeit gesehen mir den HexCode im Eclipsedebugger geben zu lassen. Hoffe es hilft weiter und der Fehler wird schnell gefunden, da sonst mein Programm fehlerhaft ist.

Konkret geht es hier um automatische Kundenübernahme von Omnitec in Agorum

Gruß
Mike
 
Moderator informieren   Gespeichert Gespeichert  
 
Letzte Änderung: 09.03.2011 20:16 von hoppler.
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#5592
frank.stettner (Moderator)
Moderator
Beiträge: 1296
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Geschlecht: männlich agorum core Ort: Stuttgart Geburtstag: 1979-09-06
Aw: Umlaute in WebServices, Path not found vor 3 Jahren, 1 Monat Karma: 18  
Hallo.

QUOTE:
wir benutzen das mitgelieferte MySQL, haben die neuste Version installiert von Agorum Core.

Also kleine Umlaute wie "ö,ä.ü" gehen über den "getItemsFromFolder" Befehl.

Es sieht so aus, als wäre die von uns mitgelieferte Windows(!) MySQL fehlerhaft. Meine Tests in der MySQL Konsole:
Code:

mysql> select upper('AOU aou ÄÖÜ äöü');
+--------------------------+
| upper('AOU aou ÄÖÜ äöü') |
+--------------------------+
| AOU AOU ÄÖÜ äöü |
+--------------------------+
1 row in set (0.00 sec)

mysql> select lower('AOU aou ÄÖÜ äöü');
+--------------------------+
| lower('AOU aou ÄÖÜ äöü') |
+--------------------------+
| aou aou ÄÖÜ äöü |
+--------------------------+
1 row in set (0.00 sec)

Da stimmt was nicht. Ich werde prüfen, ob das evtl ein Konfigurationsfehler ist, oder ein Feher der DB.

QUOTE:
Wenn ich jedoch einen Ordner Testä habe und einen Ordner TestÄ anlegen will, denkt Agorum, dass der Ordner schon exiistiert.
Hier bitte beachten, dass die Ordner Erstelleung über den ParseXMLRequestBean läuft. Um Fehler zu vermeiden gebe ich immer "<NoErrorIfExist/>" mit.

Das ist richtig! Bei Ordnern/Dateien unterscheiden wir nicht zw. Groß- und Kleinschreibung, da Windows das auch nicht tut.

QUOTE:
EDIT:
Test& wird auch per XML nicht gefunden, aber das liegt an XML, wenn man es mit &amp; beschreibt, geht es. Also anstatt Test& ein Test&amp;

Ja, das ist richtig. XML-Syntax
Hier wurde das schon einmal besprochen: /cms/index.php?option=com_fireboard&amp;Itemid=4&amp;func=view&amp;id=5484&amp;catid=36#5460


QUOTE:
EDIT2:

Folgendes ist mir noch aufgefallen: Im Quellcode, an der Stelle der Exception, wird der angefragte Pfad nicht zurückggegeben, obwohl der Quellcode dies vorsieht:

Und zwar requestBean.getFolder() im Methodenaufruf ExceptionUtils.handleException

Hm, stimmt... Da ist ein Fehler in ObjectLookupBean.toString(). Ist gefixed.

QUOTE:
EDIT3:

Also nach reichlichem RemoteDebuggen steht fest, dass es nicht an der Implementierung von "getItemsFromFolderImpl" liegt, sondern der "Fehler" passiert schon viel früher. Selbst in den Paketen die SOAP verarbeitet, ist es schon falsch. Anstatt ein "Ö" krieg ich ein Schwarz4es Raute mir Fragezeichen drinne. Habe keine möglichkeit gesehen mir den HexCode im Eclipsedebugger geben zu lassen. Hoffe es hilft weiter und der Fehler wird schnell gefunden, da sonst mein Programm fehlerhaft ist.

Der Fehler liegt an der MySQL-Windows-Version.... Mit Postgres oder der Linux-MySQL gibt es dieses Problem nicht.
Die einzige Lösung, die ich im Moment sehe ist, das Sie eine eigene aktuelle MySQL 5.X installieren und verwenden.
Wenn Sie eine eigene MySQL-Installtion verwenden, müssen Sie in der my.ini den Wert max_allowed_packet auf mindestens 2 MB eingestellt ist und lower_case_table_names auf 1 gesetzt ist. Zudem muss die InnoDB-Engine der MySQL-Datenbank installiert sein.
Die Verbindungseinstellungen zur neuen DB konfigurieren Sie in der Datei INSTALLDIR/jboss/server/default/deploy/mysql-ds.xml.
Um Ihre Daten zu übernehmen, machen Sie einen Dump der alten DB und importieren Sie den Dump in die neue DB (/cms/index.php?option=com_fireboard&Itemid=4&func=view&id=1838&catid=31).

Viele Grüße,
Frank Stettner
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#5596
hoppler (Benutzer)
Senior Boarder
Beiträge: 46
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Umlaute in WebServices, Path not found vor 3 Jahren, 1 Monat Karma: 0  
Hi,

also ich habe den Mysql auf die Version 5.5.9, also die neuste Version geändert. Der Mysql ist ohne Fehler gestartet und in der Server.log waren auch keine fehler.

Jedoch besteht das Problem immernoch, dass Umlaute nicht korrekt behandelt werden. Alle kleinen öäü gingen, aber die großen ÖÄÜ gingen nicht.

In der cmd über mysql ist der select lower und select upper jedoch richtig abgelaufen

Code:


mysql> select lower('aou AOU äöü ÄÖÜ');
+--------------------------+
| lower('aou AOU äöü ÄÖÜ') |
+--------------------------+
| aou aou äöü äöü |
+--------------------------+
1 row in set (0.00 sec)

mysql> select upper('aou AOU äöü ÄÖÜ');
+--------------------------+
| upper('aou AOU äöü ÄÖÜ') |
+--------------------------+
| AOU AOU ÄÖÜ ÄÖÜ |
+--------------------------+
1 row in set (0.00 sec)

mysql>



ABER: Wenn ich einen Ordner TestÖ erstelle kann ich ihn mit dem Aufruf TestÖ nicht bearbeiten. Wenn ich allerdings Testö hinschicke wird er erkannt und bearbeitet.

Also ich denke, dass irgendwo im Programm noch was nicht ganz stimmt. Muss nur noch wissen was^^

EDIT:
Im Debug für die Variablen steht auch ein 'ä' drinnen, aber beim 'Ä' steht nur ein Fragezeichen.

Wo werden die Variablen gefüllt. Wer parst den XML Code um in ein ObjectRequestBean?


Gruß
Mike
 
Moderator informieren   Gespeichert Gespeichert  
 
Letzte Änderung: 10.03.2011 21:52 von hoppler.
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#5598
frank.stettner (Moderator)
Moderator
Beiträge: 1296
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Geschlecht: männlich agorum core Ort: Stuttgart Geburtstag: 1979-09-06
Aw: Umlaute in WebServices, Path not found vor 3 Jahren, 1 Monat Karma: 18  
Hallo.

QUOTE:
also ich habe den Mysql auf die Version 5.5.9, also die neuste Version geändert. Der Mysql ist ohne Fehler gestartet und in der Server.log waren auch keine fehler.

Jedoch besteht das Problem immernoch, dass Umlaute nicht korrekt behandelt werden. Alle kleinen öäü gingen, aber die großen ÖÄÜ gingen nicht.

In der cmd über mysql ist der select lower und select upper jedoch richtig abgelaufen

Ok, danke für die Info! Ist ein guter Hinweis!
Meinen Tests haben bis jetzt ergeben, das sich das Problem nur auf die Webservices bezieht. Können Sie das so bestätigen?

QUOTE:
ABER: Wenn ich einen Ordner TestÖ erstelle kann ich ihn mit dem Aufruf TestÖ nicht bearbeiten. Wenn ich allerdings Testö hinschicke wird er erkannt und bearbeitet.

Per Webservice, XML oder Webinterface?

QUOTE:
EDIT:
Im Debug für die Variablen steht auch ein 'ä' drinnen, aber beim 'Ä' steht nur ein Fragezeichen.

Was meinen Sie mit "Debug"?

QUOTE:
Wo werden die Variablen gefüllt. Wer parst den XML Code um in ein ObjectRequestBean?

Sie meinen das ObjectRequestBean vom ObjectService? Welches XML? das SOAP-XML?

Viele Grüße,
Frank Stettner
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#5599
hoppler (Benutzer)
Senior Boarder
Beiträge: 46
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Umlaute in WebServices, Path not found vor 3 Jahren, 1 Monat Karma: 0  
Hi,

also das Problem kann ich bestätigen, dass es nur mit den WebServices das Problem gibt.

Per XML-Request über WebServices funktionieren auch die großen Umlaute. Hier befindet sich der XML Text im innerXML als CDATA.


QUOTE:
QUOTE:
ABER: Wenn ich einen Ordner TestÖ erstelle kann ich ihn mit dem Aufruf TestÖ nicht bearbeiten. Wenn ich allerdings Testö hinschicke wird er erkannt und bearbeitet.


Hier handelte es sich um WebServices. Im endeffekt ist alles wovon ich rede WebServices, entweder ein requestItem... oder halt ein requestXML.

Das Problem denke ich liegt im Parser von Binär auf string, da als Header utf8 mitgegeben wird, als encoding aber LATIN1 verwendet wird. Generell wechselt euer XML, habe welche mit UTF-8 gesehen, bei agorum.commons.xml in der Methode parseXML jedoch sind die XML mit Header ISO-8859-1.


Der Debug ist das Remote Debugging per Eclipse. Hier kann ich mir den Inhalt von Variablen anschaun und habe das mit ä, Ä festegestellt.


QUOTE:
QUOTE:
Wo werden die Variablen gefüllt. Wer parst den XML Code um in ein ObjectRequestBean?


Mir geht es um die Stelle, in der aus den Netzwerkbytes eines Request ein String konvertiert wird. Denn hier denke ich liegt der Fehler.

Als Notlösung schicke ich momentan alle Anfragen direkt als lowercase, da kleine Umlaute ja funktionieren.

Wie gesagt, es sollte an der Umwandlung von byte in text oder sonstigem liegen.


Gruß
Mike
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#6027
hoppler (Benutzer)
Senior Boarder
Beiträge: 46
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Umlaute in WebServices, Path not found vor 2 Jahren, 11 Monaten Karma: 0  
Hi,

habe eben versucht per GetItemsFromFolderRequestBean einen Ordner zu suchen, der ein "ß" hat. Das geht nicht. Gibt es ein Workaround dafür?


Gruß
Mike
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#6050
frank.stettner (Moderator)
Moderator
Beiträge: 1296
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Geschlecht: männlich agorum core Ort: Stuttgart Geburtstag: 1979-09-06
Aw: Umlaute in WebServices, Path not found vor 2 Jahren, 10 Monaten Karma: 18  
Bin am testen
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#8108
hoppler (Benutzer)
Senior Boarder
Beiträge: 46
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Umlaute in WebServices, Path not found vor 1 Jahr, 4 Monaten Karma: 0  
Hi,

habe heute mit der Version 7.0.0 Pro versucht per WebService und getItemsFromFolder einen Ordner "Testß" zu suchen, welcher wirklich existiert. Jedoch wird er als nicht gefunden gemeldet vom ItemsResponseBean

System:
Windows 2008 R2 Deutsch
Agorum 7.0.0 Pro frisch installiert
Mitgelieferte MySQL Version

Hier ein Code ausschnitt:

Code:

var reqBean = new GetItemsFromFolderRequestBean
{
serviceMethod = "getItemsFromFolder",
wsSessionId = this.SessionId,
folder = item.FullPath,
classNames = new[] {item.ObjectType.ToString()},
needsConnection = true,
requestAttributes = new[] {"ID", "NAME"}
};

using (var client = new NgOSItemsServicePortClient())
{
client.Endpoint.Address = new EndpointAddress(ServerAddress);
client.Open();
ItemsResponseBean resBean = client.getItemsFromFolder(reqBean);
if (resBean.errorCode != 0
|| !StrOp.IsEmptyString(resBean.logError))
return false;


Gruss
Mike
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#8111
oliver.schulze (Admin)
Admin
Beiträge: 1751
graph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Geschlecht: männlich agorum core Ort: Neuhausen Geburtstag: 1978-09-17
Aw: Umlaute in WebServices, Path not found vor 1 Jahr, 4 Monaten Karma: 20  
Mit welchem Zeichensatz wird der Service gesendet? Bei den Services der 7.0.0 muss man noch mit ISO-8859-1 arbeiten. Ab Version 7.0.4 (kommt bis Weihnachten) gibt es eine neue JSON-API, die dann auch UTF-8 versteht
 
Moderator informieren   Gespeichert Gespeichert  
 
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#8114
hoppler (Benutzer)
Senior Boarder
Beiträge: 46
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Umlaute in WebServices, Path not found vor 1 Jahr, 4 Monaten Karma: 0  
Hi,

hab explicit den Suchparameter in ISO-8859-1 Kodiert, jedoch wird der Pfad trotzdem nicht gefunden.

Code:

string pathIso = Encoding.GetEncoding("ISO-8859-1").GetString(Encoding.Default.GetBytes(item.Path));


Die Antwort vom Server ist folgende:

Code:

ErrorCode 64
n NgOS error has occured: Given folder was not found: FullPath: /agorum/roi/Files/Kunden/00000 Test�? GmbH/TestOrdner


Hierbei habe ich den Antworttext exact kopiert, damit man sehen kann, dass irgendwas an der Kodierung nicht stimmt.


Gruss
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#8119
hoppler (Benutzer)
Senior Boarder
Beiträge: 46
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Umlaute in WebServices, Path not found vor 1 Jahr, 4 Monaten Karma: 0  
Hi,

habe weiter probiert und habe auch festgestellt, dass man keine Antwort mehr auf "requestAttributes" bekommt.

Code:

var reqBean = new GetItemsFromFolderRequestBean
{
serviceMethod = "getItemsFromFolder",
wsSessionId = this.SessionId,
folder = StrOp.IsEmptyString(item.Parent_ID)
? new ObjectLookupBean { fullPath = item.FullPath }
: new ObjectLookupBean {objectId = long.Parse(item.Parent_ID)},
classNames = new[] {item.ObjectType.ToString()},
needsConnection = true,
requestAttributes = new[] {"ID", "NAME"}
};


->
Code:

requestAttributes = new[] {"ID", "NAME"}


Es wurde zwar ein Ordner der kein 'ß' enthält gefunden, aber ich bekomme keine Antwort über dessen 'Name' oder 'ID'. Kann es sein, dass 'getItemsFromFolder' komplett defekt ist oder funktioniert bei Ihnen alles so wies soll, auch mit 'ß' usw?

Gruss
Mike
 
Moderator informieren   Gespeichert Gespeichert  
 
Letzte Änderung: 13.12.2012 10:43 von hoppler.
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#8130
oliver.schulze (Admin)
Admin
Beiträge: 1751
graph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Geschlecht: männlich agorum core Ort: Neuhausen Geburtstag: 1978-09-17
Aw: Umlaute in WebServices, Path not found vor 1 Jahr, 4 Monaten Karma: 20  
Code:


string pathIso = Encoding.GetEncoding("ISO-8859-1").GetString(Encoding.Default.GetBytes(item.Path));



das ist nicht korrekt, das zerstört den Umlaut.

Innerhalb von Java sollten Sie immer Unicode bleiben. Wichtig ist, mit welchem Encoding das ganze nachher gesendet wird. Also dort, wo der HTTP-SOAP-Aufruf stattfindet. Um das zu beurteilen wäre ein Sniff ganz gut von dem, was übers Netzwerk geht.
 
Moderator informieren   Gespeichert Gespeichert  
 
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#8134
hoppler (Benutzer)
Senior Boarder
Beiträge: 46
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Umlaute in WebServices, Path not found vor 1 Jahr, 4 Monaten Karma: 0  
Hi,

dieses Umkodieren habe ich nur als Test eingefügt, um zu testen ob es an der Kodierung liegt. Ohne diese Zeile geht es ebenfalls nicht. Ich programmiere in C#.

Welche Kodierung ist für Agorum verständlich für Sonderzeichen? An einer Stelle wird ISO-8859-1 und an anderer Unicode erwähnt.


Gruss

EDIT:

Ein Sniff ergab, dass der HTTP Verkehr von C# als UTF-8 verschcikt wird und Nachrichten von Ihrem Webservice ebenfalls als UTF-8 angekommen.

Ein ß wird von C# Binär zu "0xC3 0x9F". Wenn ich ein getItemsFromFolder vom Parent-Ordner des ß-Ordners mache, dann bekomme ich den Ordner von Ihrer Funktion geliefert, und auch hier ist das ß wie oben als Binär "0xC3 0x9F" kodiert.

Funktioniert diese ß Problematik aus Java 100%?


Gruss

EDIT-2

Ich habe ein Mini-Testprogramm geschrieben und wenn gewünscht stelle ich ihnen es gerne zur Verfügung. Hier wäre nur ein Login/Logout und getItemsFromFolder enthalten.

EDIT-3
Habe nun mal die neuste von Ihnen gestellte Virtuelle Maschine getestet und dort funktioniert getItemsFromFolder mit ß. Daher liegt es an Windows im allgemeinen. Ist vielleicht MySQL die Fehlerquelle?
 
Moderator informieren   Gespeichert Gespeichert  
 
Letzte Änderung: 19.12.2012 01:19 von hoppler.
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#8139
oliver.schulze (Admin)
Admin
Beiträge: 1751
graph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Geschlecht: männlich agorum core Ort: Neuhausen Geburtstag: 1978-09-17
Aw: Umlaute in WebServices, Path not found vor 1 Jahr, 4 Monaten Karma: 20  
Standardmäßig unterstützt die bisherige SOAP-Schnittstelle von agorum core nur ISO-8859-1, es ist bekannt, dass es unter Linux auch mit UTF-8 funktioniert, jedoch unter Windows nicht. Sie müssen daher dafür sorgen, dass der Transport über ISO gemacht wird, es darf kein UTF-8 über das Netzwerk gehen.

Alternative seit heute: agorum core Version 7.0.4 ist gerade eben veröffentlicht worden. Diese beinhaltet die neue agorum core API, welche REST und SOAP unterstützt. Diese ist auch voll UTF-8 fähig.
 
Moderator informieren   Gespeichert Gespeichert  
 
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#8143
hoppler (Benutzer)
Senior Boarder
Beiträge: 46
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Umlaute in WebServices, Path not found vor 1 Jahr, 4 Monaten Karma: 0  
Hi,

habe die neue Version gleich installiert und auch hier geht kein 'ß'. Er findet ums verrecken den Ordner nicht!

ABER:
Ich habe die Lösung gefunden. Habe das Encoding ändern können. Hintergrund ist, dass VisualStudio2010 die WebService-Schnittstelle als "Dienstverweis" hinzufügen möchte. Jedoch hat man hier kaum einstellungs Möglichkeiten. Man muss das ganze als "WebReference" hinzufügen -> siehe http://blog.johnmuellerbooks.com/2011/07/12/adding-a-web-reference-in-visual-studio-2010.aspx

Dann kann man folgendes machen:

Code:

using (var client = new NgOSItemsService())
{
client.RequestEncoding = Encoding.GetEncoding("ISO-8859-1");
ItemsResponseBean resBean = client.getItemsFromFolder(reqBean);
if (resBean.errorCode != 0
|| !String.IsNullOrEmpty(resBean.logError))
return false;
}


Und siehe da, der Ordner wird gefunden. Jedoch bedeutet es, dass das neue Agorum 7.0.4 noch kein UTF-8 kann sonst würd ees doch funktionieren ohne diese anpassung richtig?


Gruss
 
Moderator informieren   Gespeichert Gespeichert  
 
Letzte Änderung: 19.12.2012 16:35 von hoppler.
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#8150
oliver.schulze (Admin)
Admin
Beiträge: 1751
graph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Geschlecht: männlich agorum core Ort: Neuhausen Geburtstag: 1978-09-17
Aw: Umlaute in WebServices, Path not found vor 1 Jahr, 3 Monaten Karma: 20  
agorum core 7.0.4 beinhaltet die "alte" SOAP-Schnittstelle, die nicht mehr angepasst wurde und die neue API, die JSON und SOAP kann, diese muss aber ganz anders verwendet werden und ist UTF-8 fähig. Siehe hier: https://www.agorum.com/wiki/index.php/API
 
Moderator informieren   Gespeichert Gespeichert  
 
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#8151
hoppler (Benutzer)
Senior Boarder
Beiträge: 46
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: [SOLVED] Umlaute in WebServices, Path not found vor 1 Jahr, 3 Monaten Karma: 0  
Guten Morgen,

ist die neue Schnittstelle schneller als die alte und schon im finalen Stand oder aktuell noch in der Betaphase? Wann wird die Dokumentation vollständig sein?


Vielen Dank
Gruss
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#8154
oliver.schulze (Admin)
Admin
Beiträge: 1751
graph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Geschlecht: männlich agorum core Ort: Neuhausen Geburtstag: 1978-09-17
Aw: [SOLVED] Umlaute in WebServices, Path not found vor 1 Jahr, 3 Monaten Karma: 20  
Ja, die neue Schnittstelle ist um einiges schneller und befindet sich bereits in einem finalen Stand, wobei immer wieder weitere Services dazukommen. An der Dokumentation wird noch gearbeitet.
 
Moderator informieren   Gespeichert Gespeichert  
 
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
Zum Anfang gehen Neues Thema
Powered by FireBoarddie neusten Beiträge direkt auf Ihrem Desktop erhalten