Hey Thomas,

Could you try to add the same @ApiClass annotation that you have on 
ApiV2.java to ApiV2Public.java and see if that prevents the error message? 

I'm unable to replicate the issue using your code and keeping all the API 
names in web.xml, even regardless of whether I add the @ApiClass annotation 
to ApiV2Public. 

I've tested using appcfg.sh from SDK version 1.9.38 and the latest SDK 
(1.9.42).

I don't see any "issuers" field defined in your API. Is this correct?

Cheers,

Nick
Cloud Platform Community Support

On Friday, October 7, 2016 at 12:03:27 AM UTC-4, Thomas Wiradikusuma wrote:
>
> Hi Nick,
>
> I've been using API Explorer (built-in tool from Cloud Endpoints), which 
> does not require client library. Or should I use other tools?
>
> Regards,
> Thomas Wiradikusuma
>
> On Friday, October 7, 2016 at 5:54:50 AM UTC+8, Nick (Cloud Platform 
> Support) wrote:
>>
>> Hey Thomas,
>>
>> Thanks for uploading. I'll be sure to take a look at this project and see 
>> if I can manage to deploy it. However, in the mean time, I think there's a 
>> possible solution on your end that hasn't been investigated so far, as far 
>> as I can tell. The issue appears to me to be caused by compiling and 
>> deploying a new version of the API, while still using the old generated 
>> client library in the clients. If you could not only generate the new 
>> client library (which should not have errors, as you observed), but also 
>> put it into the clients and have them send requests, to see whether the 
>> errors persist, that could short-circuit the process of testing on our end.
>>
>> Cheers,
>>
>> Nick
>> Cloud Platform Community Support 
>>
>> On Wednesday, October 5, 2016 at 7:47:05 AM UTC-4, Thomas Wiradikusuma 
>> wrote:
>>>
>>> Hi Nick,
>>>
>>> Attached is my Gradle-based project stripped to the simplest to 
>>> reproduce the issue. I'm unclear with what you meant, but hopefully my 
>>> project can help on your side!
>>>
>>> Regards,
>>> Thomas Wiradikusuma
>>>
>>>
>>> On Wednesday, October 5, 2016 at 4:36:55 AM UTC+8, Nick (Cloud Platform 
>>> Support) wrote:
>>>>
>>>> Hey Thomas,
>>>>
>>>> The issue wouldn't be that generation would fail - the idea is that due 
>>>> to having recompiled the API against different classes for V2, the old 
>>>> client might not be sending requests in the way expected. Could you try to 
>>>> load the updated client library into a client machine and see if the same 
>>>> error persists with the new version of the library? I'm continuing to work 
>>>> on reproducing this issue on my own side.
>>>>
>>>> Cheers,
>>>>
>>>> Nick
>>>> Cloud Platform Community Support
>>>>
>>>> On Tuesday, October 4, 2016 at 12:30:47 AM UTC-4, Thomas Wiradikusuma 
>>>> wrote:
>>>>>
>>>>> Hi Nick,
>>>>>
>>>>> The web.xml snippet I gave earlier is the one before I take one out:
>>>>>
>>>>> <param-value>com.bla.ApiV2,com.bla.ApiV2Public</param-value>
>>>>>
>>>>> Notice class ApiV2 and ApiV2Public.
>>>>>
>>>>> Also, I'm testing this from API explorer, which I think doesn't 
>>>>> require the generation of client libraries. But, for curiosity sake, I 
>>>>> did 
>>>>> try it (
>>>>> https://cloud.google.com/endpoints/docs/frameworks/java/generate-client-libraries-android
>>>>> ):
>>>>>
>>>>> endpoints-framework-tools get-client-lib --war=target/war -bs gradle 
>>>>> com.bla.ApiV2
>>>>> endpoints-framework-tools get-client-lib --war=target/war -bs gradle 
>>>>> com.bla.ApiV2Public
>>>>>
>>>>> No error in the generation (but doesn't fix my issue).
>>>>>
>>>>>
>>>>> Regards,
>>>>> Thomas Wiradikusuma
>>>>>
>>>>>
>>>>> On Tuesday, October 4, 2016 at 3:18:59 AM UTC+8, Nick (Cloud Platform 
>>>>> Support) wrote:
>>>>>>
>>>>>> Hey Thomas,
>>>>>>
>>>>>> Could you show what the web.xml file looks like before you take one 
>>>>>> out? I'm not sure how you've included both of them and it appears you 
>>>>>> uploaded a section from web.xml with only one Api class present.
>>>>>>
>>>>>> Also, just for testing's sake, have you managed to check whether 
>>>>>> recompiling the client against the new API version resolves the issue?
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>> Nick
>>>>>> Cloud Platform Community Support
>>>>>>
>>>>>> On Sunday, October 2, 2016 at 11:24:21 PM UTC-4, Thomas Wiradikusuma 
>>>>>> wrote:
>>>>>>>
>>>>>>> Hi Nick,
>>>>>>>
>>>>>>> The error happens when receiving requests. I don't think it's 
>>>>>>> necessary to update the client, as the update doesn't change the server.
>>>>>>>
>>>>>>> I'm posting here since I think it's either a bug of, or lack of 
>>>>>>> documentation for, the V2 implementation @ApiClass. Let me explain.
>>>>>>>
>>>>>>> I have 2 classes that share @Api (
>>>>>>> https://cloud.google.com/endpoints/docs/frameworks/java/multiclass
>>>>>>> ): 
>>>>>>>
>>>>>>> @Api(name = "api", version = "v2", namespace = 
>>>>>>> @ApiNamespace(ownerDomain = "bla.com", ownerName = "bla.com"))
>>>>>>> @ApiClass(authenticators = {AccountManager.class}, scopes = 
>>>>>>> {EMAIL_SCOPE}, clientIds = {API_V2_ANDROID_CLIENT_ID, 
>>>>>>> API_V2_WEB_CLIENT_ID, 
>>>>>>> API_EXPLORER_CLIENT_ID}, audiences = {API_V2_ANDROID_AUDIENCE})
>>>>>>> public class ApiV2 { .. }
>>>>>>>
>>>>>>> @Api(name = "api", version = "v2", namespace = 
>>>>>>> @ApiNamespace(ownerDomain = "bla.com", ownerName = "bla.com"))
>>>>>>> public class ApiV2Public { .. }
>>>>>>>
>>>>>>> This is how they're defined in web.xml:
>>>>>>>
>>>>>>> <servlet>
>>>>>>> <servlet-name>api</servlet-name>
>>>>>>>
>>>>>>> <servlet-class>com.google.api.server.spi.EndpointsServlet</servlet-class>
>>>>>>> <init-param>
>>>>>>> <param-name>services</param-name>
>>>>>>> <param-value>
>>>>>>> com.bla.ApiV2,com.bla.ApiV2Public
>>>>>>> </param-value>
>>>>>>> </init-param>
>>>>>>> </servlet>
>>>>>>>
>>>>>>> If I take out one from web.xml, it works. 
>>>>>>>
>>>>>>> This used to work in V1. It could be due to this new property 
>>>>>>> "issuers" that's poorly documented (compare 
>>>>>>> https://cloud.google.com/appengine/docs/java/endpoints/annotations 
>>>>>>> vs 
>>>>>>> https://cloud.google.com/endpoints/docs/frameworks/java/annotations, 
>>>>>>> Ctrl+F for "issuers").
>>>>>>>
>>>>>>> Looking forward for a solution!
>>>>>>>
>>>>>>> Regards,
>>>>>>> Thomas Wiradikusuma
>>>>>>>
>>>>>>>
>>>>>>> On Saturday, October 1, 2016 at 4:54:42 AM UTC+8, Nick (Cloud 
>>>>>>> Platform Support) wrote:
>>>>>>>>
>>>>>>>> Hey Thomas,
>>>>>>>>
>>>>>>>> This is just a guess, but it could be that it's necessary to update 
>>>>>>>> the client as well. Does that error occur when you deploy, or when you 
>>>>>>>> receive a request? That would be the way to determine if the issue is 
>>>>>>>> in 
>>>>>>>> the client needing to be updated or another issue (not clarified as 
>>>>>>>> yet) in 
>>>>>>>> the server code. 
>>>>>>>>
>>>>>>>> As a quick side-note, this forum is meant for general high level 
>>>>>>>> discussion of the platform and services, design patterns, etc. So a 
>>>>>>>> thread 
>>>>>>>> like this should actually be a Stack Overflow 
>>>>>>>> <http://stackoverflow.com> post. Not to worry as we watch that 
>>>>>>>> forum as well. You are more likely to find more users who can help, 
>>>>>>>> though, 
>>>>>>>> with a technical question in that forum.
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>>
>>>>>>>> Nick
>>>>>>>> Cloud Platform Community Support
>>>>>>>>
>>>>>>>> On Tuesday, September 27, 2016 at 9:29:27 PM UTC-4, Thomas 
>>>>>>>> Wiradikusuma wrote:
>>>>>>>>>
>>>>>>>>> Hi guys,
>>>>>>>>>
>>>>>>>>> I'm a longtime user of Cloud Endpoints (v1), and decided to give 
>>>>>>>>> v2 a try. So I followed 
>>>>>>>>> https://cloud.google.com/appengine/docs/java/endpoints/migrating 
>>>>>>>>> and here's my diff:
>>>>>>>>>
>>>>>>>>> - compile 'com.google.appengine:appengine-endpoints:1.9.42'
>>>>>>>>>
>>>>>>>>> + compile 'com.google.endpoints:endpoints-framework:2.0.0-beta.8'
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> - 
>>>>>>>>> <servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
>>>>>>>>>
>>>>>>>>> + 
>>>>>>>>> <servlet-class>com.google.api.server.spi.EndpointsServlet</servlet-class>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> - <url-pattern>/_ah/spi/*</url-pattern>
>>>>>>>>>
>>>>>>>>> + <url-pattern>/_ah/api/*</url-pattern>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I did *not* run the "generating client lib" as documented in 
>>>>>>>>> https://cloud.google.com/endpoints/docs/frameworks/java/generate-client-libraries-android
>>>>>>>>>  as I thought, "from the client perspective it should be the 
>>>>>>>>> same".
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I hit this error in the server:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> SEVERE: javax.servlet.ServletContext log: unavailable
>>>>>>>>>
>>>>>>>>> com.google.api.server.spi.config.validation.InconsistentApiConfigurationException:
>>>>>>>>>  
>>>>>>>>> api: API-wide configuration does not match between the classes 
>>>>>>>>> com.foobar.ApiV2Public and com.foobar.ApiV2. All API classes with the 
>>>>>>>>> same 
>>>>>>>>> API name and version must have the exact same API-wide configuration. 
>>>>>>>>> Differing property: issuers 
>>>>>>>>> (com.google.api.server.spi.config.model.ApiIssuerConfigs@0 vs 
>>>>>>>>> com.google.api.server.spi.config.model.ApiIssuerConfigs@d03e1481).
>>>>>>>>>
>>>>>>>>>         at 
>>>>>>>>> com.google.api.server.spi.config.validation.ApiConfigValidator.validate(ApiConfigValidator.java:89)
>>>>>>>>>
>>>>>>>>>         at 
>>>>>>>>> com.google.api.server.spi.SystemService.registerLoadedService(SystemService.java:218)
>>>>>>>>>
>>>>>>>>>         at 
>>>>>>>>> com.google.api.server.spi.SystemService.registerService(SystemService.java:193)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> How do I fix this?
>>>>>>>>>
>>>>>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/f59aab0c-c6fe-47f0-9fb7-e24f4c49d59f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
  • [google-appengine] E... Thomas Wiradikusuma
    • [google-appengi... 'Nick (Cloud Platform Support)' via Google App Engine
      • [google-app... Thomas Wiradikusuma
        • [google... 'Nick (Cloud Platform Support)' via Google App Engine
          • [go... Thomas Wiradikusuma
            • ... 'Nick (Cloud Platform Support)' via Google App Engine
              • ... 'Nick (Cloud Platform Support)' via Google App Engine
                • ... Thomas Wiradikusuma
                • ... 'Nick (Cloud Platform Support)' via Google App Engine
                • ... Thomas Wiradikusuma
                • ... 'Nick (Cloud Platform Support)' via Google App Engine
                • ... 'Nick (Cloud Platform Support)' via Google App Engine
                • ... Thomas Wiradikusuma
                • ... 'Nick (Cloud Platform Support)' via Google App Engine

Reply via email to