[
https://issues.apache.org/jira/browse/OLINGO-1342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17567140#comment-17567140
]
TUSHAR SAURABH edited comment on OLINGO-1342 at 7/15/22 8:02 AM:
-----------------------------------------------------------------
Hi Aleksandr,
I am getting the same error ,could you please let me know how to fix.Explain me
step by step.
String xmlFile = "metadata.xml";
void perform(String serviceUrl) throws Exception {
readProperties(fileName);
String bearerfederationTokenService = "Bearer " +
federationTokenService;
System.out.println("bearerfederationTokenService :1 :" +
bearerfederationTokenService);
String bearerTokenService = "Bearer " + tokenService;
System.out.println("bearerTokenService : 2 :"+bearerTokenService);
print("\n----- Read Edm ------------------------------");
Edm edm = readEdm(serviceUrl);
List<FullQualifiedName> ctFqns = new ArrayList<FullQualifiedName>();
System.out.println("ctFqns :" + ctFqns);
List<FullQualifiedName> etFqns = new ArrayList<FullQualifiedName>();
for (EdmSchema schema : edm.getSchemas()) {
for (EdmComplexType complexType : schema.getComplexTypes())
{ ctFqns.add(complexType.getFullQualifiedName()); }
for (EdmEntityType entityType : schema.getEntityTypes())
{ etFqns.add(entityType.getFullQualifiedName()); }
}
print("Found ComplexTypes", ctFqns);
print("Found EntityTypes", etFqns);
print("\n----- Inspect each property and its type of the first entity:
" + etFqns.get(0) + "----");
EdmEntityType etype = edm.getEntityType(etFqns.get(0));
for (String propertyName : etype.getPropertyNames())
{ EdmProperty property = etype.getStructuralProperty(propertyName);
FullQualifiedName typeName = property.getType().getFullQualifiedName();
print("property '" + propertyName + "' " + typeName); }
public Edm readEdm(String serviceUrl) throws IOException, URISyntaxException
{ System.out.println("xmlresult 33333 ::::" + xmlresult );
System.out.println("serviceUrl 44444" + serviceUrl );
System.out.println("xmlFile 55555" + xmlFile ); List<InputStream>
streams = new ArrayList<InputStream>(); //If file is locally
available // streams.add(getClass().getResourceAsStream(xmlFile));
ClassLoader classLoader = getClass().getClassLoader();
streams.add(classLoader.getResourceAsStream(xmlFile)) ; final Edm edm =
client.getReader().readMetadata(classLoader.getResourceAsStream(xmlFile));
return edm; }
Error :
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character
('<' (code 60)): expected a valid value (number, String, array, object, 'true',
'false' or 'null')
at [Source: org.apache.http.conn.EofSensorInputStream@1e044120; line: 1,
column: 2]
at
com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1586)
at
com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:521)
at
com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:450)
at
com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleUnexpectedValue(UTF8StreamJsonParser.java:2628)
at
com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:854)
at
com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:748)
at
com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:2145)
at
org.apache.olingo.client.core.serialization.JsonODataErrorDeserializer.doDeserialize(JsonODataErrorDeserializer.java:45)
at
org.apache.olingo.client.core.serialization.JsonDeserializer.toError(JsonDeserializer.java:442)
... 11 more
Looking for the exact solution I have been trying last 3 days.
I appreciate for the kind help .
Thanks !
was (Author: JIRAUSER292878):
Hi Aleksandr,
I am getting the same error ,could you please let me know how to fix.Explain me
step by step.
String xmlFile = "metadata.xml";
void perform(String serviceUrl) throws Exception {
readProperties(fileName);
String bearerfederationTokenService = "Bearer " +
federationTokenService;
System.out.println("bearerfederationTokenService :1 :" +
bearerfederationTokenService);
String bearerTokenService = "Bearer " + tokenService;
System.out.println("bearerTokenService : 2 :"+bearerTokenService);
print("\n----- Read Edm ------------------------------");
Edm edm = readEdm(serviceUrl);
List<FullQualifiedName> ctFqns = new ArrayList<FullQualifiedName>();
System.out.println("ctFqns :" + ctFqns);
List<FullQualifiedName> etFqns = new ArrayList<FullQualifiedName>();
for (EdmSchema schema : edm.getSchemas()) {
for (EdmComplexType complexType : schema.getComplexTypes()) {
ctFqns.add(complexType.getFullQualifiedName());
}
for (EdmEntityType entityType : schema.getEntityTypes()) {
etFqns.add(entityType.getFullQualifiedName());
}
}
print("Found ComplexTypes", ctFqns);
print("Found EntityTypes", etFqns);
print("\n----- Inspect each property and its type of the first entity:
" + etFqns.get(0) + "----");
EdmEntityType etype = edm.getEntityType(etFqns.get(0));
for (String propertyName : etype.getPropertyNames()) {
EdmProperty property = etype.getStructuralProperty(propertyName);
FullQualifiedName typeName =
property.getType().getFullQualifiedName();
print("property '" + propertyName + "' " + typeName);
}
public Edm readEdm(String serviceUrl) throws IOException, URISyntaxException {
System.out.println("xmlresult 33333 ::::" + xmlresult );
System.out.println("serviceUrl 44444" + serviceUrl );
System.out.println("xmlFile 55555" + xmlFile );
List<InputStream> streams = new ArrayList<InputStream>();
//If file is locally available
// streams.add(getClass().getResourceAsStream(xmlFile));
ClassLoader classLoader = getClass().getClassLoader();
streams.add(classLoader.getResourceAsStream(xmlFile)) ;
final Edm edm =
client.getReader().readMetadata(classLoader.getResourceAsStream(xmlFile));
return edm;
}
Looking for the exact solution I have been trying last 3 days.
I appreciate for the kind help .
Thanks !
> Non-json errors not displayed properly in logs
> ----------------------------------------------
>
> Key: OLINGO-1342
> URL: https://issues.apache.org/jira/browse/OLINGO-1342
> Project: Olingo
> Issue Type: Bug
> Components: odata4-client
> Affects Versions: (Java) V4 4.5.0, (Java) V4 4.6.0
> Reporter: Aleksandr Zaigraev
> Priority: Major
> Labels: patch
> Fix For: (Java) V4 4.10.0
>
> Attachments: OLINGO-1342.patch
>
>
> When http client receives non-json encoded error message, for example when
> receiving this error message:
> <HEAD><TITLE>Tunnel Connection Failed</TITLE></HEAD>...
> In Spring logs following will be displayed:
> org.apache.olingo.client.api.serialization.ODataDeserializerException:
> com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<'
> (code 60)): expected a valid value (number, String, array, object, 'true',
> 'false' or 'null')
> at [Source: (ByteArrayInputStream); line: 1, column: 2]
> at
> org.apache.olingo.client.core.serialization.JsonDeserializer.toError(JsonDeserializer.java:444)
> ~[odata-client-core-4.5.0.jar:na]
> at
> org.apache.olingo.client.core.serialization.ClientODataDeserializerImpl.toError(ClientODataDeserializerImpl.java:105)
> ~[odata-client-core-4.5.0.jar:na]
> ...
--
This message was sent by Atlassian Jira
(v8.20.10#820010)